|
Проведенные документ "УстановкаЦенНоменклатуры" не отражается в регистрах | ☑ | ||
---|---|---|---|---|
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) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |