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