Вход | Регистрация
 
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) Спасибо

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