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

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

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

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


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

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

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


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

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

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

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

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

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

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


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