Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Проведенные документ "УстановкаЦенНоменклатуры" не отражается в регистрах

Проведенные документ "УстановкаЦенНоменклатуры" не отражается в регистрах
Я
   Pyryrym
 
05.08.20 - 14:53
Провожу документ, он отображается в истории изменения цен
Однако в прайс-листе и в регистре сведений "Цены номенклатуры" ничего не отображается.

Изначально провожу программно, однако если проводить в ручную, результат тот же.

Документ провожу так:

ДокЦена.Записать(РежимЗаписиДокумента.Проведение);


При попытке выполнить

ДокЦена.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);

Пишет ошибку: "Недопустимое значение параметра (параметр номер '2')"
   dka80
 
1 - 05.08.20 - 15:23
Тебе же сказали: создай документ полностью вручную и через консоль запросов посмотри какие реквизиты и таблицы заполнены в нем. Потом посмотри так ли получается, когда ты документ формируешь программно
   Pyryrym
 
2 - 05.08.20 - 15:59
(1) При полностью созданным в ручную документе, нажимая кнопку провести, никаких ошибок не выдает, но при этом в регистре не отражается
   FIXXXL
 
3 - 05.08.20 - 16:57
(2) статус есть у документа?
   Pyryrym
 
4 - 05.08.20 - 17:53
(3) Да, вот код:    


     ТЗ = ПолучитьТаблицаЗначенийИз_XLSX_Файла();
    
    ДокЦена=Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    ДокЦена.Дата=ТекущаяДата(); 
    ДокЦена.Согласован = Истина; 
    ДокЦена.Ответственный = Пользователи.ТекущийПользователь();
    ДокЦена.Статус =    Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован; 
    ВидЦеныДоб = Справочники.ВидыЦен.НайтиПоНаименованию(ВидЦены);
    
    Если ВидЦеныДоб.Пустая() Тогда
        СоздатьВидЦены();
    КонецЕсли;
    
    ТабЧастьВидЦены = ДокЦена.ВидыЦен.Добавить();
    ТабЧастьВидЦены.ВидЦены = ВидЦеныДоб;
    Инд = 1;
    Для Каждого Строка ИЗ ТЗ Цикл

        НоваяСтрока = ДокЦена.Товары.Добавить();
        НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Строка.Наименование);
        НоваяСтрока.ЦенаИзмененаВручную = Ложь;
        НоваяСтрока.ВидЦены = ВидЦеныДоб;
        НоваяСтрока.Цена = Строка.Цена;
        НоваяСтрока.Упаковка = Справочники.УпаковкиЕдиницыИзмерения.НайтиПоНаименованию(Строка.ЕдиницаИзмерения);
        Инд = Инд + 1;
    КонецЦикла;

    ДокЦена.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);
   ДенисЧ
 
5 - 05.08.20 - 17:55
ВидЦеныДоб = Справочники.ВидыЦен.НайтиПоНаименованию(ВидЦены);
    
    Если ВидЦеныДоб.Пустая() Тогда
        СоздатьВидЦены();
    КонецЕсли;

А где получение созданного вида?
   Pyryrym
 
6 - 05.08.20 - 18:21
Написал так:

    ТЗ = ПолучитьТаблицаЗначенийИз_XLSX_Файла();
    
    ДокЦена=Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    ДокЦена.Дата=ТекущаяДата(); 
    ДокЦена.Согласован = Истина; 
    ДокЦена.Ответственный = Пользователи.ТекущийПользователь();
    ДокЦена.Статус =    Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован; 
    ВидЦеныДоб = Справочники.ВидыЦен.НайтиПоНаименованию(ВидЦены);
    
    Если ВидЦеныДоб.Пустая() Тогда
        СоздатьВидЦены();
    КонецЕсли;
    
    ВидЦеныДоб = Справочники.ВидыЦен.НайтиПоНаименованию(ВидЦены).Ссылка;        
    ТабЧастьВидЦены = ДокЦена.ВидыЦен.Добавить();
    ТабЧастьВидЦены.ВидЦены = ВидЦеныДоб;                                    //новое

    Инд = 1;
    Для Каждого Строка ИЗ ТЗ Цикл

        НоваяСтрока = ДокЦена.Товары.Добавить();
        НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Строка.Наименование);
        НоваяСтрока.ЦенаИзмененаВручную = Ложь;
        НоваяСтрока.ВидЦены = ВидЦеныДоб;
        НоваяСтрока.Цена = Строка.Цена;
        НоваяСтрока.Упаковка = Справочники.УпаковкиЕдиницыИзмерения.НайтиПоНаименованию(Строка.ЕдиницаИзмерения);
        Инд = Инд + 1;
    КонецЦикла;

    ДокЦена.Записать(РежимЗаписиДокумента.Проведение);


Изменений нет
   ДенисЧ
 
7 - 05.08.20 - 18:31
А отладчик что говорит?
   Pyryrym
 
8 - 05.08.20 - 18:37
Документ создается, и даже если провести вручную - документ проводится, но движения регистра не происходит
   lubitelxml
 
9 - 05.08.20 - 18:38
Не верно используете НайтиПоНаименованию() - второй параметр нужно ставить Истина, или 1 - чтобы искал по точному соответствию, иначе может подхватить не тот элемент
   lubitelxml
 
10 - 05.08.20 - 18:41
(8) ну пройдись отладчиком по обработке проведения и посмотри в какое условие тебя не пускает
   lubitelxml
 
11 - 05.08.20 - 18:44
Если это обычные формы - у ТЧ Товары есть реквизит ИндексСтрокиТаблицыЦен - его надо заполнять, если УФ (УТ 11) - то не нужно, у тебя непонятный счетчик Инд = Инд + 1, к тому же написан не верно - в начале он должен быть = 0 (актуально для обычных форм)
   Pyryrym
 
12 - 05.08.20 - 18:57
(11) это УФ, забрыл убрать счетчик, однако он ни на что не влиял
   Pyryrym
 
13 - 05.08.20 - 18:59
(10)  К сожалению, я не совсем понимаю как это сделать
   Ёпрст
 
14 - 05.08.20 - 19:22
(8) а должны ?
Организация где задается хоть ?
   Ёпрст
 
15 - 05.08.20 - 19:32
ага. судя по коду это ут11, 
тогда посмотреть, ведется ли учет по характеристикам у загружаемой номенклатуры, если да, то запрос будет пустой в модуле проведения
   Pyryrym
 
16 - 05.08.20 - 19:32
(14) Я не достаточно хорошо разбираюсь в 1с, чтобы ответить на этот вопрос
   lubitelxml
 
17 - 05.08.20 - 19:33
(15) есть там такое - либо флаг Использовать характеристики должен быть Ложь, либо характеристику надо заполнить
   Ёпрст
 
18 - 05.08.20 - 19:36
(16) короче, у любой номенклатуры смотри, чему равен реквизит ИспользованиеХарактеристик . Если "использовать", то в твоём коде нужно обязательное указание характеристики
   Pyryrym
 
19 - 05.08.20 - 20:26
(18) Спасибо огромное, в этом было дело
   Pyryrym
 
20 - 05.08.20 - 20:27
(17) Спасибо

Список тем форума
Рекламное место пустует  Рекламное место пустует
Миста — веселый ресурс со своими эксклюзивными тараканами Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.