Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 17:49

программное заполнение документа Установка цен номенклатуры в УТ 11.1

Автор Zakir_80, 13 дек 2014, 23:38

0 Пользователей и 1 гость просматривают эту тему.

Zakir_80

Здравствуйте.
Из внешней обработки пытаюсь загрузить прайс-лист в документ УстановкаЦенНоменклатуры (УТ 11.1.2). Подскажите, пожалуйста, почему при программном  заполнении документа

&НаКлиенте
Процедура ЗагрузитьФайлExcel(Команда)

ФормаДокумента = ПолучитьФорму("Документ.УстановкаЦенНоменклатуры.ФормаОбъекта");
ДанныеФормы = ФормаДокумента.Объект;

СоздатьДокументУстановкиНовойЦены(ДанныеФормы);
КопироватьДанныеФормы(ДанныеФормы, ФормаДокумента.Объект);  //

ФормаДокумента.Открыть();

КонецПроцедуры

&НаСервере
Процедура СоздатьДокументУстановкиНовойЦены(ДанныеФормы)

        ТаблицаДляУстановкиНовыхЦен = ИнициализироватьТаблицуУстановкиЦен();

Для каждого Стр из Таблица Цикл

НоваяСтр = ТаблицаДляУстановкиНовыхЦен.Добавить();
                НоваяСтр.Номенклатура = Стр.Номенклатура;
НоваяСтр.Цена = Стр.Цена;
НоваяСтр.ВидЦены = Объект.ВидЦены;
НоваяСтр.ЦенаИзмененаВручную = Истина;

КонецЦикла;

//Состояние("Формирование документа установки цен номенклатуры...");
Если ТаблицаДляУстановкиНовыхЦен.Количество() = 0 Тогда
Возврат;
КонецЕсли;

Документ = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.УстановкаЦенНоменклатуры"));
Документ.Дата = Объект.Дата;
//Документ.УстановитьНовыйНомер();
Документ.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
Документ.Согласован = Истина;
Документ.Ответственный = Объект.Менеджер;
Документ.Комментарий = "# Создан автоматически на основании прайс-листа #";

Строка = Документ.ВидыЦен.Добавить();
Строка.ВидЦены = Объект.ВидЦены;

Документ.Товары.Загрузить(ТаблицаДляУстановкиНовыхЦен);
Документ.Товары.Свернуть("Номенклатура, ВидЦены, Цена");

ЗначениеВДанныеФормы(Документ,ДанныеФормы);

КонецПроцедуры

после открытия формы в режиме 1С:Предприятие в таб.части документа (в элементе формы ДеревоЦен) почему-то пусто (ни одной строки), но при этом видно, что шапка документа (дата, ответственный, комментарий) и вид цены заполнились. Отладчик показывает, что при открытии формы тч Товары содержит данные. Почему тогда они не показываются на форме? Может кто сталкивался с таким?

cska-fanat-kz

зачем так заумно то?
разве нельзя как раньше: создать объект нового документа, заполнить его, получить его форму и открыть ее?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

sertak

Цитата: cska-fanat-kz от 14 дек 2014, 04:05
зачем так заумно то?
разве нельзя как раньше: создать объект нового документа, заполнить его, получить его форму и открыть ее?
+1
Усложнено.
Есть 2 ТЧ: ВидыЦен и Товары. В ВидыЦен загоняете все свои виды цен, в Товары загоняете номенклатуру, характеристику, вид цены и цену для данного вида цены.  А документ на форме выводит на основании всего этого матрицу, которую мы и видим при открытии. Оно, конечно, способ, может, и не единственный, но Оккамо мужик был умный, однако.

Zakir_80

Цитироватьзачем так заумно то?
разве нельзя как раньше: создать объект нового документа, заполнить его, получить его форму и открыть ее?
Если вы имеете ввиду серверную процедуру, то согласен, упростил.


&НаСервере
Процедура СоздатьДокументУстановкиНовойЦены(ДанныеФормы)

Документ = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
Документ.Дата = Объект.Дата;
Документ.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
Документ.Согласован = Истина;
Документ.Ответственный = Объект.Менеджер;
Документ.Комментарий = "# Создан автоматически на основании прайс-листа #";

Строка = Документ.ВидыЦен.Добавить();
Строка.ВидЦены = Объект.ВидЦены;

// Таблица - таблица значений в которую предварительно загружены данные из прайса Excel
Для каждого Стр из Таблица Цикл

НоваяСтр = Документ.Товары.Добавить();
НоваяСтр.Номенклатура = Стр.Номенклатура;
НоваяСтр.Цена = Стр.Цена;
НоваяСтр.ВидЦены = Объект.ВидЦены;
НоваяСтр.ЦенаИзмененаВручную = Истина;

КонецЦикла;

ЗначениеВДанныеФормы(Документ, ДанныеФормы);

КонецПроцедуры

Добавлено: 14 дек 2014, 18:58


ЦитироватьЕсть 2 ТЧ: ВидыЦен и Товары. В ВидыЦен загоняете все свои виды цен, в Товары загоняете номенклатуру, характеристику, вид цены и цену для данного вида цены.  А документ на форме выводит на основании всего этого матрицу, которую мы и видим при открытии. Оно, конечно, способ, может, и не единственный, но Оккамо мужик был умный, однако.
Цитировать

Я так и сделал, но на форме все равно ничего не появилось. Получилось только после того, как добавил перед открытием формы на клиенте такую строку:
ФормаДокумента.ЗаполнитьДокумент(); // экспортируемая процедура модуля формы документа УстановкаЦенНоменклатуры
ФормаДокумента.Открыть();


Почему-то при открытии формы (ФормаДокумента.Открыть()) не отрабатывает заполнение документа уже в самом документе УстановкаЦенНоменклатуры. Возможно, пора обновляться до 11.1.9...
Добавлено: 14 дек 2014, 18:59


cska-fanat-kz, sertak - спасибо за ответы.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск