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