#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОбработчикиСобытий
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
ПроведениеДокументов.ПередЗаписьюДокумента(ЭтотОбъект, РежимЗаписи, РежимПроведения);
ОбщегоНазначенияУТ.ИзменитьПризнакСогласованностиДокумента(ЭтотОбъект, РежимЗаписи, Перечисления.СтатусыУстановокЦенНоменклатуры.НеСогласован);
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ПроведениеДокументов.ПриЗаписиДокумента(ЭтотОбъект, Отказ);
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("ИспользоватьСогласованиеЦенНоменклатуры")
И Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован
И Не ПраваПользователяПовтИсп.УстановкаЦенНоменклатурыБезСогласования() Тогда
ТекстОшибки = НСтр("ru='Нет прав на установку цен номенклатуры без согласования'");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
ТекстОшибки,
Ссылка,
,
,
Отказ);
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
ЗаполнитьПоПоступлениюТоваровУслуг(
ДанныеЗаполнения,
ДанныеЗаполнения);
ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПоступлениеТоваровНаСклад") Тогда
ЗаполнитьПоПоступлениюТоваров(
ДанныеЗаполнения,
ДанныеЗаполнения);
ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПриемкаТоваровНаХранение") Тогда
ЗаполнитьПоПриемкеТоваровНаХранение(
ДанныеЗаполнения,
ДанныеЗаполнения);
ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПоставщику") Тогда
ЗаполнитьПоЗаказуПоставщику(
ДанныеЗаполнения,
ДанныеЗаполнения);
ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПорчаТоваров") Тогда
ЗаполнитьПоПорчеТоваров(
ДанныеЗаполнения,
ДанныеЗаполнения);
ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.СборкаТоваров") Тогда
ЗаполнитьПоСборкеТоваров(
ДанныеЗаполнения,
ДанныеЗаполнения);
ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПрочееОприходованиеТоваров") Тогда
ЗаполнитьПоПрочемуОприходованиюТоваров(
ДанныеЗаполнения,
ДанныеЗаполнения);
ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ИзменениеАссортимента") Тогда
ЗаполнитьПоИзменениюАссортимента(
ДанныеЗаполнения,
ДанныеЗаполнения);
ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ВводОстатков") Тогда
ЗаполнитьПоВводуОстатков(
ДанныеЗаполнения,
ДанныеЗаполнения);
ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
Если ДанныеЗаполнения.Свойство("ТаблицаНоменклатуры") Тогда
ЗаполнитьПоТаблицеНоменклатуры(
ДанныеЗаполнения);
КонецЕсли;
КонецЕсли;
ИнициализироватьДокумент(ДанныеЗаполнения);
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Замер = ОценкаПроизводительности.НачатьЗамерДлительнойОперации(
"Документ.УстановкаЦенНоменклатуры.МодульОбъекта.ОбработкаПроведения");
УстановитьБлокировкуЦенНоменклатуры(Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
КоличествоОбработанныхДанных = (Товары.Количество() + Товары2_5.Количество()) / 10;
ОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(Замер, КоличествоОбработанныхДанных);
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
УстановитьБлокировкуЦенНоменклатуры(Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
КонецПроцедуры
Процедура ПриКопировании(ОбъектКопирования)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25(ТекущаяДатаСеанса()) Тогда
Если Товары.Количество() > 0 Тогда
Товары.Очистить();
КонецЕсли;
Иначе
Если Товары2_5.Количество() > 0 Тогда
Товары2_5.Очистить();
КонецЕсли;
КонецЕсли;
ИнициализироватьДокумент();
Согласован = Ложь;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ЗаполнитьНаборыЗначенийДоступа(Таблица) Экспорт
Если ВидыЦен.Количество() = 0 Тогда
Строка = Таблица.Добавить();
Строка.ЗначениеДоступа = Перечисления.ДополнительныеЗначенияДоступа.ДоступРазрешен;
Иначе
Для Каждого СтрокаВидыЦен Из ВидыЦен Цикл
Строка = Таблица.Добавить();
Строка.ЗначениеДоступа = СтрокаВидыЦен.ВидЦены;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура УстановитьБлокировкуЦенНоменклатуры(Отказ)
Если Отказ
ИЛИ НЕ Метаданные.РегистрыСведений.ЦеныНоменклатуры.РазрешитьИтогиСрезПервых
И НЕ Метаданные.РегистрыСведений.ЦеныНоменклатуры.РазрешитьИтогиСрезПоследних Тогда
Возврат;
КонецЕсли;
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ЦеныНоменклатуры");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = ЭтотОбъект.Товары;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ЦеныНоменклатуры25");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = ЭтотОбъект.Товары;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
Блокировка.Заблокировать();
Исключение
Отказ = Истина;
ТекстСообщения = НСтр(
"ru = 'Не удалось изменить движения документа ""%1""
|по причине:
|%2'");
ТекстСообщения = СтрШаблон(
ТекстСообщения,
СокрЛП(ЭтотОбъект),
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Управляемая блокировка'"),
УровеньЖурналаРегистрации.Ошибка,
,
,
ТекстСообщения);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,,,, Отказ);
КонецПопытки;
КонецПроцедуры
#Область ИнициализацияИЗаполнение
Процедура ЗаполнитьПоПоступлениюТоваровУслуг(
Знач ДокументОснование,
ДанныеЗаполнения)
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВидыЦен.Ссылка,
| ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании,
| ВидыЦен.ПометкаУдаления
|ПОМЕСТИТЬ ВидыЦен
|ИЗ
| Справочник.ВидыЦен КАК ВидыЦен
|ГДЕ
| ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании
| И ВидыЦен.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДействияВидовЦен.Действует)
| И НЕ ВидыЦен.ПометкаУдаления
|;
|
|
|ВЫБРАТЬ
| ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
| ПриобретениеТоваровУслугТовары.Характеристика КАК Характеристика,
| ПриобретениеТоваровУслугТовары.Серия,
| ПриобретениеТоваровУслугТовары.Упаковка КАК Упаковка,
| ВидыЦен.Ссылка КАК ВидЦены,
| 0 КАК Цена
|ИЗ
| Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ВидыЦен КАК ВидыЦен
| ПО ИСТИНА
|ГДЕ
| ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не требуется вводить установку цен номенклатуры на основании документа %1'"),
ДокументОснование);
ВызватьИсключение Текст;
Иначе
ЭтотОбъект.ДокументОснование = ДокументОснование;
ЗагрузитьТовары(РезультатЗапроса.Выгрузить());
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоВводуОстатков(
Знач ДокументОснование,
ДанныеЗаполнения)
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВидыЦен.Ссылка,
| ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании,
| ВидыЦен.ПометкаУдаления
|ПОМЕСТИТЬ ВидыЦен
|ИЗ
| Справочник.ВидыЦен КАК ВидыЦен
|ГДЕ
| ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании
| И ВидыЦен.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДействияВидовЦен.Действует)
| И НЕ ВидыЦен.ПометкаУдаления
|;
|
|
|ВЫБРАТЬ
| ВводОстатковТовары.Номенклатура КАК Номенклатура,
| ВводОстатковТовары.Характеристика КАК Характеристика,
| ВводОстатковТовары.Серия,
| ВводОстатковТовары.Упаковка КАК Упаковка,
| ВидыЦен.Ссылка КАК ВидЦены,
| 0 КАК Цена
|ИЗ
| Документ.ВводОстатков.Товары КАК ВводОстатковТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ВидыЦен КАК ВидыЦен
| ПО ИСТИНА
|ГДЕ
| ВводОстатковТовары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не требуется вводить установку цен номенклатуры на основании документа %1'"),
ДокументОснование);
ВызватьИсключение Текст;
Иначе
ЭтотОбъект.ДокументОснование = ДокументОснование;
ЗагрузитьТовары(РезультатЗапроса.Выгрузить());
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоПоступлениюТоваров(
Знач ДокументОснование,
ДанныеЗаполнения)
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Серия,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ВидыЦен.Ссылка КАК ВидЦены,
| 0 КАК Цена
|ИЗ
| Документ.ПоступлениеТоваровНаСклад.Товары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен
| ПО (ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании)
| И (НЕ ВидыЦен.ПометкаУдаления)
| И (ВидыЦен.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДействияВидовЦен.Действует))
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не требуется вводить установку цен номенклатуры на основании документа %1'"),
ДокументОснование);
ВызватьИсключение Текст;
Иначе
ЭтотОбъект.ДокументОснование = ДокументОснование;
ЗагрузитьТовары(РезультатЗапроса.Выгрузить());
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоПриемкеТоваровНаХранение(Знач ДокументОснование, ДанныеЗаполнения)
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ПриемкаТоваровНаХранениеТовары.Номенклатура КАК Номенклатура,
| ПриемкаТоваровНаХранениеТовары.Характеристика КАК Характеристика,
| ПриемкаТоваровНаХранениеТовары.Серия,
| ПриемкаТоваровНаХранениеТовары.Упаковка КАК Упаковка,
| ВидыЦен.Ссылка КАК ВидЦены,
| 0 КАК Цена
|ИЗ
| Документ.ПриемкаТоваровНаХранение.Товары КАК ПриемкаТоваровНаХранениеТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен
| ПО (ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании)
| И (НЕ ВидыЦен.ПометкаУдаления)
| И (ВидыЦен.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДействияВидовЦен.Действует))
|ГДЕ
| ПриемкаТоваровНаХранениеТовары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не требуется вводить установку цен номенклатуры на основании документа %1'"),
ДокументОснование);
ВызватьИсключение Текст;
Иначе
ЭтотОбъект.ДокументОснование = ДокументОснование;
ЗагрузитьТовары(РезультатЗапроса.Выгрузить());
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоЗаказуПоставщику(
Знач ДокументОснование,
ДанныеЗаполнения)
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
| ЗаказПоставщикуТовары.Характеристика КАК Характеристика,
| ЗаказПоставщикуТовары.Упаковка КАК Упаковка
|ИЗ
| Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
|ГДЕ
| ЗаказПоставщикуТовары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не требуется вводить установку цен номенклатуры на основании документа %1'"),
ДокументОснование);
ВызватьИсключение Текст;
Иначе
ЭтотОбъект.ДокументОснование = ДокументОснование;
ЗагрузитьТовары(РезультатЗапроса.Выгрузить());
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоПорчеТоваров(
Знач ДокументОснование,
ДанныеЗаполнения)
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ПорчаТоваровТовары.НоменклатураОприходование КАК Номенклатура,
| ПорчаТоваровТовары.ХарактеристикаОприходование КАК Характеристика,
| ПорчаТоваровТовары.Серия,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка
|ИЗ
| Документ.ПорчаТоваров.Товары КАК ПорчаТоваровТовары
|ГДЕ
| ПорчаТоваровТовары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не требуется вводить установку цен номенклатуры на основании документа %1'"),
ДокументОснование);
ВызватьИсключение Текст;
Иначе
ЭтотОбъект.ДокументОснование = ДокументОснование;
ЗагрузитьТовары(РезультатЗапроса.Выгрузить());
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоСборкеТоваров(
Знач ДокументОснование,
ДанныеЗаполнения)
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.Серия,
| Товары.Упаковка КАК Упаковка
|ИЗ
| Документ.СборкаТоваров.Товары КАК Товары
|ГДЕ
| Товары.Ссылка = &Ссылка
| И Товары.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РазборкаТоваров)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДокументСборкаТоваров.Номенклатура КАК Номенклатура,
| ДокументСборкаТоваров.Характеристика КАК Характеристика,
| ДокументСборкаТоваров.Серия,
| ДокументСборкаТоваров.Упаковка КАК Упаковка
|ИЗ
| Документ.СборкаТоваров КАК ДокументСборкаТоваров
|ГДЕ
| ДокументСборкаТоваров.Ссылка = &Ссылка
| И ДокументСборкаТоваров.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СборкаТоваров)");
Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не требуется вводить установку цен номенклатуры на основании документа %1'"),
ДокументОснование);
ВызватьИсключение Текст;
Иначе
ЭтотОбъект.ДокументОснование = ДокументОснование;
ЗагрузитьТовары(РезультатЗапроса.Выгрузить());
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоПрочемуОприходованиюТоваров(
Знач ДокументОснование,
ДанныеЗаполнения)
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.Серия,
| Товары.Упаковка КАК Упаковка
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК Товары
|ГДЕ
| Товары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не требуется вводить установку цен номенклатуры на основании документа %1'"),
ДокументОснование);
ВызватьИсключение Текст;
Иначе
ЭтотОбъект.ДокументОснование = ДокументОснование;
ЗагрузитьТовары(РезультатЗапроса.Выгрузить());
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоИзменениюАссортимента(
Знач ДокументОснование,
ДанныеЗаполнения)
АссортиментСервер.ПроверитьНеобходимостьУстановкиЦенНаОсновании(ДанныеЗаполнения.Ссылка);
РезультатПакетаВидыЦенИТовары = АссортиментСервер.РезультатПакетаВидыЦенИТоварыДляУстановкиПоАссортименту(ДанныеЗаполнения.Ссылка);
ТаблицаВидовЦен = РезультатПакетаВидыЦенИТовары[1].Выгрузить();
ТаблицаТоваров = РезультатПакетаВидыЦенИТовары[0].Выгрузить();
Если ТаблицаВидовЦен.Количество() = 0 Тогда
ТекстОшибки = НСтр("ru='Нет доступных видов цен для установки цен номенклатуры.
|Оформление документа не требуется.
|Заполнение документа не выполнено.'");
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, ДанныеЗаполнения.Ссылка);
ВызватьИсключение ТекстОшибки;
Иначе
ЭтотОбъект.ДокументОснование = ДокументОснование;
ВидыЦен.Загрузить(ТаблицаВидовЦен);
ЗагрузитьТовары(ТаблицаТоваров);
КонецЕсли;
КонецПроцедуры
Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено)
Ответственный = Пользователи.ТекущийПользователь();
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСогласованиеЦенНоменклатуры")
Или ПраваПользователяПовтИсп.УстановкаЦенНоменклатурыБезСогласования() Тогда
Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
Иначе
Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.НеСогласован;
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоТаблицеНоменклатуры(ДанныеЗаполнения)
ТаблицаНоменклатуры = ПолучитьИзВременногоХранилища(ДанныеЗаполнения.ТаблицаНоменклатуры);
ЗагрузитьТовары(ТаблицаНоменклатуры);
ТаблицаНоменклатуры.Свернуть("ВидЦены");
ВидыЦен.Загрузить(ТаблицаНоменклатуры);
Дата = ДанныеЗаполнения.Дата;
КонецПроцедуры
Процедура ЗагрузитьТовары(ТаблицаТовары)
ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
Если ИспользуетсяЦенообразование25 Тогда
Если ТаблицаТовары.Колонки.Найти("Упаковка") = Неопределено Тогда
ТаблицаТовары.Колонки.Добавить("Упаковка", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения"));
КонецЕсли;
Если ТаблицаТовары.Колонки.Найти("Серия") = Неопределено Тогда
ТаблицаТовары.Колонки.Добавить("Серия", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
КонецЕсли;
Если ТаблицаТовары.Колонки.Найти("Характеристика") = Неопределено Тогда
ТаблицаТовары.Колонки.Добавить("Характеристика", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
КонецЕсли;
СтруктураНастроек = Новый Структура();
СтруктураНастроек.Вставить("ТаблицаТоваров", ТаблицаТовары);
СтруктураНастроек.Вставить("ИмяМакетаСхемыКомпоновкиДанных", "Макет2_5");
СтруктураНастроек.Вставить("КомпоновщикНастроек", Неопределено);
СтруктураНастроек.Вставить("ВестиУчетСертификатовНоменклатуры", Ложь);
СтруктураНастроек.Вставить("ИспользуетсяОтборПоВнешнемуИсточникуДанных", Истина);
СтруктураНастроек.Вставить("ОбязательныеПоля" , Новый Массив);
СтруктураНастроек.ОбязательныеПоля.Добавить("Номенклатура");
СтруктураНастроек.ОбязательныеПоля.Добавить("Характеристика");
СтруктураНастроек.ОбязательныеПоля.Добавить("ХарактеристикаЦО");
СтруктураНастроек.ОбязательныеПоля.Добавить("Серия");
СтруктураНастроек.ОбязательныеПоля.Добавить("СерияЦО");
СтруктураНастроек.ОбязательныеПоля.Добавить("Упаковка");
СтруктураНастроек.ОбязательныеПоля.Добавить("УпаковкаЦО");
СтруктураНастроек.ОбязательныеПоля.Добавить("ВидЦены");
СтруктураРезультата = Обработки.ПодборТоваровПоОтбору.ПодготовитьСтруктуруДанных(СтруктураНастроек);
Товары2_5.Загрузить(СтруктураРезультата.ТаблицаТоваров);
Иначе
Товары.Загрузить(ТаблицаТовары);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ПрограммныйИнтерфейс
#КонецОбласти
#КонецЕсли