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