Планирование графиков оплаты, отгрузки и платежей

Термины и определения

СУУ - система управленческого учета (1С: Управление торговлей ред.11.4.2.109).

Бланк проекта (Проект) - документ СУУ. Представляет собой единицу финансового учета, содержит сведения о доходной и расходной части по проекту производства продукции сторонними производителями и/или по проекту предоставления услуг собственного подразделения “Дизайн Студия и КБ” или по проекту перепродажи услуг сторонней организации.

Техническое задание – документ СУУ, в котором подробно описано задание на производство продукции для клиента: что и как необходимо сделать для клиента по предоставленным им пожеланиям (из какого материала, какого размера, какого цвета, и пр.)

Бриф – документ СУУ, в котором подробно описано в текстовом формате задание на креатив на определенную работу собственного подразделения “Дизайн Студия и КБ”: что и как необходимо сделать для клиента по предоставленным им пожеланиям (создать дизайн чего-либо, сверстать что-либо, изготовить чертежи для чего-либо).

Заказ клиента - документ СУУ, в котором собрана информация по нескольким проектам о количестве, цене, сумме изготовляемой продукции и предоставляемым услугам. 

Счет на оплату клиенту - документ СУУ, в котором выставлены суммы для оплаты клиентом по сроку оплаты. Вводится на основании Заказа клиента.

Реализация товаров и услуг - документ СУУ, финансовый документ отгрузки производственной продукции, включенной в Заказ клиента (перегружается в 1С:Бухгалтерия предприятия). Вводится на основании Заказа клиента.

Акт выполненных работ - документ СУУ, финансовый документ выполнения (отгрузки) услуг, включенных в Заказ клиента (перегружается в 1С:Бухгалтерия предприятия). Вводится на основании Заказа клиента.

Заказ поставщику - документ СУУ, в котором собрана информация о заказываемых у сторонних поставщиков к определенному проекту материалах и продукции по количеству, цене и сумме.

Заявка на расход денежных средств - документ СУУ, в котором выставлены суммы для оплаты поставщику по сроку платежа. Вводится на основании Заказа поставщику.

Приобретение товаров и услуг - документ СУУ, финансовый документ получения от поставщика товарно-материальных ценностей (перегружается в 1С:Бухгалтерия предприятия). Вводится на основании Заказа поставщику.

Приобретение услуг и прочих активов - документ СУУ, финансовый документ, фиксирующий сумму затрат за услуги, полученные от поставщика(перегружается в 1С:Бухгалтерия предприятия).

Заявка на перевозку - документ СУУ, в котором планируется перевозка тиража клиента от основного поставщика клиенту или тиража материалов от дополнительного поставщика на склад основного поставщика.

Задание на перевозку - документ СУУ, в котором оформляется факт перевозки тиража клиента от основного поставщика клиенту или тиража материалов от дополнительного поставщика на склад основного поставщика по ранее созданным заявкам на перевозку.

КО - клиентский отдел.

ПО - производственный отдел.

1. Архитектура

1.1. Роли СУУ

Наименование 

Описание 

!Клиент 

Покупатель продукции и/или услуг организации в компании “ЭФКО”

!Разработчик 

Разработчик, программист - сотрудник организации, производящей доработку @СУУ для компании ООО “ЭФКО”

!ЗамГенДир 

Заместитель генерального директора. Сотрудник, курирующий работу всех отделов

!ИспДир 

Исполнительный директор. Сотрудник, курирующий работу производственного отдела и отдела логистики.

!КомДир 

Коммерческий директор. Сотрудник, курирующий работу клиентского отдела и “Дизайн Студию и Конструкторское Бюро”.

!Логист 

Логист. Сотрудник, ответственный за перевозку товарно-материальных ценностей. Формирует задания на перевозку, распечатывает и визирует необходимые отгрузочные документы, транспортные накладные.

!МенеджерКО 

Менеджер клиентского отдела. Менеджер, работающий с клиентом по данному #БланкуПроекта. 

!ИсполнительКО 

Исполнитель клиентского отдела. Исполнитель, работающий в паре с !МенеджеромКО с клиентом по данному #БланкуПроекта. 

!МенеджерПО 

Менеджер производственного отдела. Менеджер, работающий с поставщиком по данному #БланкуПроекта. 

!ИсполнительПО 

Исполнитель производственного отдела. Исполнитель, работающий в паре с !МенеджеромПО с поставщиком по данному #БланкуПроекта. 

!РукНаправления 

Руководитель одного из направлений: Дизайн, Верстка или Конструктив - курирующий работы внутреннего подразделения компании “ЭФКО” по данному #БланкуПроекта. 

!ИсполнительДС 

Исполнитель работ одного из направлений: Дизайн, Верстка или Конструктив - выполняющий работы внутреннего подразделения организации компании “ЭФКО” по данному #БланкуПроекта. 

!ГлавныйБухгалтер 

Главный бухгалтер компании “ЭФКО”.

!Пользователь 

Любой пользователь @СУУ 

1.2. Объекты СУУ

Объекты СУУ 

Описание, реквизиты, Значения, Типы значений 

Параметры сеанса: 

Тип значения: 

#ТекущийПользователь (объект уже существует) 

Определяет текущего пользователя из справочника #Пользователи 

(тип Справочник.Пользователи) 

Разделы программы (подсистемы): 

Состав команд раздела: 

#ЭФКО(объект уже существует) 

Раздел определяет состав команд для основных сотрудников компании “ЭФКО”. 

НОВЫЕ объекты для включения в раздел:

 

Справочники:

Документы:

#ЭР_РаспределениеОплатыНаПроекты

 

Настройки:

Сервис:

Отчеты:

#Отчет.ОбщееСостояниеВыполненияЗаказовКлиентов

#Отчет.ОбщееСостояниеВыполненияЗаказовПоставщикам 

Константы: 

Описание, тип значения: 

#ЭР_КолвоРабДнейНаРазнесениеБанковскихВыписок (синоним “Количество рабочих дней на разнесение банковских выписок”) объект необходимо добавить

Тип - Число 2,0

#ЭР_КолвоРабДнейНаЗавершениеЗаданийНаПеревозку (синоним Количество рабочих дней на завершение заданий на перевозку)(объект необходимо добавить)

Тип - Число 2,0

#ЭР_КолвоРабДнейНаОтгрузкуРаботКлиентам (синоним Количество рабочих дней на огрузку работ клиентам)(объект необходимо добавить)

Тип - Число 2,0

#ЭР_КолвоРабДнейВыставленияЗРДС 

Тип - Число 2,0

#ЭР_КолвоРабДнейНаОформлениеПоступлений 

Тип - Число 2,0

Перечисления: 

Значения: 

#Перечисление.СобытияСтатистикиПроекта (объект необходимо добавить)

#ДатаЗакрытияВсехБрифов (Дата закрытия всех Брифов)

#ДатаОтгрузкиСторУслуги (Дата отгрузки сторонней услуги)

Справочники: 

Реквизиты: 

#Cправочник.СоглашенияСКлиентами (объект уже существует) 

Справочник позволяет определить перечень соглашений взаимодействия с клиентами

Новые реквизиты:

#ОплатаПослеЧастичнойОтгрузки (тип Булево)

#Cправочник.СоглашенияСПоставщиками (объект уже существует) 

Справочник позволяет определить перечень соглашений взаимодействия с поставщиками

 

Новые реквизиты:

#ОплатаПослеЧастичнойОтгрузки (тип Булево)

#Cправочник.ДоговорыКонтрагентов (объект уже существует) 

Новые реквизиты справочника: 

#СчетНаОплатуОбязательно (тип Булево)

#ПриложениеОбязательно (тип Булево)

Документы: 

Реквизиты: 

#Документ.ЭФКО_БланкПроекта (объект уже существует) 

Новые реквизиты документа:

#ОплатаПослеЧастичнойОтгрузки (тип Булево)

#Календарь (тип Справочник.ПроизводственныеКалендари)

#ЦенаДокумента (тип Число 15,9) - специально большая точность

#Отгружено (тип Булево)

#ПлановыеЗатратыНаДоставкуБезНДС (тип Число 15,2)

#ПлановыеЗатратыНаДоставкуСНДС (тип Число 15,2)

#ФактическиеЗатратыНаДоставкуБезНДС (тип Число 15,2)

#ФактическиеЗатратыНаДоставкуСНДС (тип Число 15,2)

 

Новая табличная часть документа

#ГрафикОплатыСоглашения

 

Реквизиты

#ТЧ.ГрафикОплатыСоглашения (скопировать три реквизита с табличной части) #Справочник.СоглашенияСКлиентами.ЭтапыГрафикаОплаты):

#ВариантОплаты (тип Перечисление.ВариантыОплатыКлиентом) #Сдвиг (тип Число 10,0)

#ПроцентПлатежа (тип Число 5,2) 

#Документ.Заказ Клиента (объект уже существует) 

Новые реквизиты документа:

#ОплатаПослеЧастичнойОтгрузки (тип Булево)

#Календарь (тип Справочник.ПроизводственныеКалендари) #ДатаСогласованияПроектов (тип Дата)

Новая табличная часть документа

#ГрафикОплатыСоглашения

Реквизиты

#ТЧ.ГрафикОплатыСоглашения (скопировать три реквизита с табличной части) #Справочник.СоглашенияСКлиентами.ЭтапыГрафикаОплаты):

#ВариантОплаты (тип Перечисление.ВариантыОплатыКлиентом) #Сдвиг (тип Число 10,0)

#ПроцентПлатежа (тип Число 5,2)

Новая форма документа

#ЭтапыОплатыКлиентом 

#Документ.Заказ Поставщику (объект уже существует) 

 Новые реквизиты документа: 

#ОплатаПослеЧастичнойОтгрузки (тип Булево)

#Календарь (тип Справочник.ПроизводственныеКалендари)

#ДатаСтартаЗаказаПоставщику (тип Дата)

Новая табличная часть документа

#ГрафикОплатыСоглашения 

Реквизиты

#ТЧ.ГрафикОплатыСоглашения (скопировать три реквизита с табличной части #Справочник.СоглашенияСПоставщиками.ЭтапыГрафикаОплаты): 

#ВариантОплаты (тип Перечисление.ВариантыОплатыПоставщику) 

#Сдвиг (тип Число 10,0) 

#ПроцентПлатежа (тип Число 5,2) 

Новая форма документа

#ЭтапыОплатыПоставщику 

#ЭР_ЗавершениеРаботПоПроектуСобственныхУслуг (объект необходимо добавить в конфигурацию)

Реквизиты документа: 

#Проект (тип Документ.ЭФКО_БланкПроекта)

#ЭР_РаспределениеОплатыНаПроекты (объект необходимо добавить в конфигурацию)

Реквизиты документа:

#ДокументОснование(тип Документ.ПоступлениеБезналичныхДенежныхСредств)

Табличная часть “ЗаказыКлиента” 

#ЗаказКлиента (тип Документ.ЗаказКлиента)

#СуммаОплаты (тип Число 15,2)

Табличная часть “РаспределениеОплаты”

#ЗаказКлиента (тип Документ.ЗаказКлиента

#Проект (тип Документ.ЭФКО_БланкПроекта)

#Доля (тип Число 15,2)

#Сумма (тип Число 15,2)

Регистры сведений: 

Измерения, Ресурсы, Реквизиты, Регистраторы, Периодичность: 

#ЭР_СтатистикаПоПроекту (объект    необходимо добавить в конфигурацию)

 

Независимый, Непериодический. 

Измерения: 

#Проект (тип Документ.ЭФКО_БланкПроекта)

#Событие (тип Перечисление.СобытияСтатистикиПроекта)

Ресурсы: 

#Дата (тип Дата)

#ЭР_ОбменПечатнымиФормами (объект необходимо добавить в конфигурацию)

 

Независимый, Периодический (день). 

Измерения:

#Документ (составной тип Документ.ЗаказКлиента, СчетНаОплатуКлиенту, РеализацияТоваровУслуг, АктВыполненныхРабот)

Ресурсы: 

#Отправлен (тип Булево)

#Получен  (тип Булево)

#ЭР_ДолиОплатыПроектов (объект необходимо добавить в конфигурацию)

 

Зависимый, периодический (секунда) с регистраторами #ЭР_РаспределениеОплатыНаПроекты 

Измерения:

#ДокументОснование (тип Документ.ПоступлениеБезналичныхДенежныхСредств)

#ЗаказКлиента (тип Документ.ЗаказКлиента)

#Проект (тип Документ.ЭФКО_БланкПроекта)

Ресурсы:

#Доля (тип Число 15,7)- специально большая точность

#ЭР_СостояниеПроцессаСогласованияЗРДС (объект необходимо добавить в конфигурацию)

 

Независимый, Периодический (секунда). 

Измерения:

#ЗРДС (тип Документ.ЗаявкаНаРасходованиеДенежныхСредств)

#Статус (тип Строка 25)

#Событие (тип Строка 50) #Пользователь(тип Справочник.Пользователи)

#Комментарий (тип Строка 250)

Ресурсы: 

#Сумма (тип Число 15,2)

#ЭР_ПроектыДляКорректировкиИнформации (объект необходимо добавить в конфигурацию)

 

Независимый, Непериодический. 

Измерения:

#Проект (тип Документ.ЭФКО_БланкПроекта)

#Заказ (составной тип Документ.ЗаказКлиента, ЗаказПоставщику)

#ПроектыДляПересчетаСуммыДоставки (объект необходимо добавить в конфигурацию)

Независимый, Непериодический. 

Измерения:

#Проект (тип Документ.ЭФКО_БланкПроекта)

#ТоварыКДоставке (объект уже существует)

 Новые измерения:

 #НакладнаяПроведена (тип Булево)

Регистры накопления: 

Измерения, Ресурсы, Реквизиты,

Регистраторы: 

#ЭР_ЭтапыГрафикаОплатыПроектов (объект необходимо добавить в конфигурацию)

Оборотный регистр с регистраторами: #ЗаказКлиента,  #ЭР_ЭФКО_ЗаявкаНаПеревозку, #ЭР_ЭФКО_ОтменаЗаявокНаПеревозку,  #ЗаданиеНаПеревозку, #ЭР_ЗавершениеРаботПоПроектуСобственныхУслуг, #ЭФКО_БланкПроекта, ПриобретениеТоваровУслуг

Измерения: 

#Заказ (составной тип Документ.ЗаказКлиента, Документ.ЗаказПоставщику)

#Проект (тип Документ.ЭФКО_БланкПроекта) #ДатаПлатежа (тип Дата)

Ресурсы: 

#Предоплата (тип Число 15,5) - специально большая точность

#КредитПлан (тип Число 15,5)

#КредитОжидаем (тип Число 15,5) #ОтгрузкаПлан (тип Число 15,5) #ЗапланированоЗаявками (тип Число 15,5) #ОтгруженоПоЗаданиямБрифамПроектам (тип Число 15,5)

Отчеты: 

Описание, параметры: 

#СостояниеВыполненияЗаказаКлиента (объект необходимо добавить в конфигурацию)

Параметры:

#ЗаказКлиента (тип Документ.ЗаказКлиента)

#ОбщееСостояниеВыполненияЗаказовКлиентов (объект необходимо добавить в конфигурацию)

Параметры:

#Сотрудник (тип Справочник.Пользователи)

#Клиент (тип Справочник.Партнеры) #ЗаказКлиента (тип Документ.ЗаказКлиента)

#Проект (тип Документ.ЭФКО_БланкПроекта)

#СостояниеВыполненияЗаказаПоставщику (объект необходимо добавить в конфигурацию)

Параметры:

#Заказпоставщику (тип Документ.ЗаказПоставщику)

#ОбщееСостояниеВыполненияЗаказовПоставщикам (объект необходимо добавить в конфигурацию)

Параметры:

#Сотрудник (тип Справочник.Пользователи)

#Поставщик (тип Справочник.Партнеры) #ЗаказПоставщику (тип Документ.ЗаказПоставщику)

#Проект (тип Документ.ЭФКО_БланкПроекта)

БизнесПроцессы: 

Описание, параметры: 

#ЭР_СогласованиеЗРДС (объект необходимо добавить в конфигурацию)

Описание в п.7.2 

Регламентные задания: 

Описание, параметры: 

#ПересчетЭтаповГрафиковОплатыПоЗаказамКлиента (объект необходимо добавить в конфигурацию)

Производит массовый пересчет и перезаполнение ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты и ставит задачи ответственным сотрудникам.

#ОпределениеПросроченныхОплатКлиентов 

Производит определение просроченных оплат от клиентов на текущий рабочий день и массово ставит задачи ответственным сотрудникам. 

#ОпределениеПросроченныхОтгрузокКлиентам 

Производит определение просроченных отгрузок клиентам на текущий рабочий день и массово ставит задачи ответственным сотрудникам. 

#ОпределениеПросроченныхРаботКлиентам 

Производит определение просроченных отгрузок по работам на текущий рабочий день и массово ставит задачи ответственным сотрудникам.

#ПересчетЭтаповГрафиковОплатыПоЗаказамПоставщику 

Производит определение списка заказов поставщику, по которым необходимо выставить Заявку на расход ДС и массово ставит задачи ответственным сотрудникам. 

#ОпределениеПросроченныхОплатПоставщикам 

Производит определение просроченных оплат  поставщикам на текущий рабочий день и массово ставит задачи ответственным сотрудникам.

#ОпределениеПросроченныхПоступленийПоставщиков 

Производит определение просроченных поступлений от поставщиков на текущий рабочий день и массово ставит задачи ответственным сотрудникам.

#КорректировкаИнформацииПоПроектам 

Производит определение Проектов, информацию по которым необходимо обновить в результате изменения информации в связанных Заказах поставщику и Заказе клиента.

#ПереносЗаявокНаПеревозку 

Производит определение заявок на перевозку, которые еще не “уехали” в заданиях на перевозку и по которым прошла ДатаПеревозки. Отменяет эти Заявки и создает новые с новой ДатойПеревозки.

#ПересчетСуммыЗаДоставку 

Производит перезаполнение фактических затрат на доставку в проектах, по которым были движения по оплатам за доставку.

2. Графики оплаты клиента и графики отгрузки клиенту

Шаг

Действие

2.1

Определение графика оплаты клиента  

В договоре с клиентом должен закрепляться график оплаты клиента, как совокупность двух следующих видов оплат:   

1) Предоплата (до отгрузки) в процентном отношении к сумме бюджета по заказу клиента (Приложению), например, 10% предоплаты. Срок ожидания оплаты равен самой поздней дате согласования по Бланкам проектов, включенным в заказ клиента, + срок отсрочки предоплаты (например, 3 дня календарных или рабочих);  

2) Кредит (после отгрузки) - постоплата в процентном отношении к сумме физически отгруженной продукции или к сумме оказанных услуг по заказу клиента (Приложению). Процентное отношение постоплаты - Коэффициент постоплаты - всегда равен (100% МИНУС процент предоплаты). Постоплата ожидается через некоторое количество дней отсрочки либо после каждой частичной физической отгрузки тиража продукции и услуг, либо после полной физической отгрузки. 

(при частичных оплатах каждый раз ожидается сумма долга = сумма частичной отгрузки*Коэффициент постоплаты). 

Чтобы обеспечить планирование оплаты клиента в СУУ существует еще один вид оплаты: 

3) Кредит (плановый) - постоплата в процентном отношении к сумме бюджета по заказу клиента (Приложению). Этот вид оплаты обеспечивает планирование оплат от клиента по тем суммам Заказа клиента, по которым еще не зафиксировано в системе закрытых физических отгрузок тиража или услуг.  

Для документа “Бланк проекта” по конкретному договору автоматически указывается тот же График оплаты клиента, который закреплен в договоре, однако, остается возможность настроить другой график оплаты для конкретного “Бланка проекта”. 

Важно: в один заказ клиента (в одно Приложение) можно включить только те Бланки проектов, у которых один и тот же “График оплаты клиента”. Этот график оплаты клиента закрепляется и за заказом клиента. 

Пример1 Графика оплаты клиента с предоплатой по заказу и постоплатой по каждой накладной (вид дней отсрочки- календарные):

Пример2 Графика оплаты клиента с предоплатой по заказу и постоплатой по заказу в целом (после отгрузки всего тиража)(вид дней отсрочки- рабочие): 

 

По умолчанию в договоре указывается всегда такой “График оплаты клиента”: 

 

В #Перечисление.ВариантыОплатыКлиентом !Разработчик добавляет новое значение #КредитПланПослеОтгрузки (синоним “Кредит план. (после отгрузки)”).  

В @СУУ будет использоваться настройка #Константа.ИспользоватьУпрощеннуюСхемуОплатыВПродажах = Истина, !Разработчик делает невозможным выбрать другой вариант в “Настройке НСИ и разделов  - Продажи”. 

В #Cправочник.СоглашенияСКлиентами при создании нового элемента реквизит #ИспользуютсяДоговорыКонтрагентов = Истина.  

Если #ИспользуютсяДоговорыКонтрагентов = Ложь, тогда реквизит #ПорядокРасчетов заполнять значением #Перечисление.ПорядокРасчетов.ПоЗаказамНакладным и на форме элемента сделать реквизит #ПорядокРасчетов всегда недоступным для редактирования. 

!Разработчик в #Cправочник.СоглашенияСКлиентами добавляет новый реквизит #ОплатаПослеЧастичнойОтгрузки и вносит изменения на #ФормуОплаты справочника: 

Перед записью элемента #Cправочника.СоглашенияСКлиентами !Разработчик вносит корректировки: создаются одна или две строки в ТЧ #Cправочника.СоглашенияСКлиентами.ЭтапыГрафикаОплаты. По этапу предоплаты - без изменений, а по этапу Кредит(после отгрузки) делать строку со значением реквизита #ВариантОплаты = #Перечисление.ВариантыОплатыКлиентом.КредитПланПослеОтгрузки. При открытии сохраненного элемента справочника на #ФормуОплаты эти значения строк ТЧ восстанавливаются в соответствующие значения реквизитов формы. Т.е. в соглашении может быть только 2 варианта оплаты: #ПредоплатаДоОтгрузки, #КредитПланПослеОтгрузки. 

В #Cправочник.ДоговорыКонтрагентов при создании нового элемента реквизит #ПорядокРасчетов заполнять значением #Перечисление.ПорядокРасчетов.ПоЗаказамНакладным. На форме элемента сделать реквизит #ПорядокРасчетов всегда недоступным для редактирования. 

!Разработчик в #Документ.ЭФКО_БланкПроекта добавляет новые реквизиты #ОплатаПослеЧастичнойОтгрузки, #Календарь, новую ТЧ #ГрафикОплатыСоглашения и выносит их на форму документа #ЭтапыОплатыКлиентом для возможности интерактивного редактирования реквизитов документа и реквизитов ТЧ #ГрафикОплатыСоглашения документа на этой форме (обеспечить пересчет процентов платежа для Кредита при изменении процента платежа для Предоплаты и наоборот, как это реализовано в #ФормуОплаты справочника #СоглашенияКлиентов): 

!Разработчик обеспечивает перезаполнение из выбранного соглашения в том числе (к тем реквизитам, что уже сейчас перезаполняются) реквизиты: #ОплатаПослеЧастичнойОтгрузки, #Календарь, ТЧ #ГрафикОплатыСоглашения 

#ГрафикОплатыСоглашения.ВариантОплаты = #Соглашение.ВариантОплаты 

#ГрафикОплатыСоглашения.Сдвиг = #Соглашение.Сдвиг 

#ГрафикОплатыСоглашения.ПроцентПлатежа = #Соглашение.ПроцентПлатежа 

Перед записью документа #Документ.ЭФКО_БланкПроекта !Разработчик вносит корректировки: создаются одна или две строки в ТЧ #ГрафикОплатыСоглашения (строка с нулевым значением ПроцентаПлатежа не создается). По этапу предоплаты - без изменений, а по этапу Кредит(после отгрузки) делать строку со значением реквизита #ВариантОплаты = #Перечисление.ВариантыОплатыКлиентом.КредитПланПослеОтгрузки. При открытии сохраненного документа на форме #ЭтапыОплатыКлиентом эти значения строк ТЧ восстанавливаются в соответствующие значения реквизитов формы. Т.е. в Проекте может быть только 2 варианта оплаты: #ПредоплатаДоОтгрузки, #КредитПланПослеОтгрузки. 

Перед записью #Документ.ЭФКО_БланкПроекта проверять, что в ТЧ #ГрафикОплатыСоглашения: 

Если ТЧ заполнена, то сумма по реквизиту #ГрафикОплатыСоглашения.ПроцентПлатежа = 100.  

Если эта ТЧ не заполнена, то заполнять ее так: 

#ВариантОплаты= Перечисление.ВариантыОплатыКлиентом.КредитПланПослеОтгрузки; 

#Сдвиг = 0 

#ПроцентПлатежа = 100 

Перед записью #Документ.ЭФКО_БланкПроекта рассчитывать и записывать реквизит #ЦенаДокумента = #ТЧ.Товары.Итог("СуммаСНДС") / #ТЧ.Товары.Итог("Количество") 

!Разработчик дорабатывает алгоритм, отрабатывающий при нажатии на кнопку  “Начать согласование” в #Документе.ЭФКО_БланкПроекта: проверять заполненность реквизита #Документ.ЭФКО_БланкПроекта.ЖелаемаяДатаОтгрузки. В противном случае отказывать от начала процесса согласования с выдачей соответствующего сообщения !Пользователю. 

!Разработчик в #Документ.ЗаказКлиента добавляет новые реквизиты #ОплатаПослеЧастичнойОтгрузки, #Календарь, новую ТЧ #ГрафикОплатыСоглашения и выносит их и существующую ТЧ #ЭтапыГрафикаОплаты на новую форму документа #ЭтапыОплатыКлиентом для возможности просмотра и частичного интерактивного редактирования реквизитов документа. Основу для новой формы взять с #Общаяформа.ЭтапыОплатыКлиентом. Новая форма должна открываться при нажатии на гиперссылку: 

и должна выглядеть так: 

 

!Разработчик на новой форме оставляет возможность редактирования для реквизитов #ФормаОплаты, #ПорядокОплаты, #Касса, #БанковскийСчет. 

Кнопка $ЗаполнитьПоСоглашению, реквизиты #ОплатаПослеЧастичнойОтгрузки, #Календарь и ТЧ #ЗаказКлиента.ГрафикОплатыСоглашения доступны только в том случае, если отсутствуют записи в #РН.ТоварыКОтгрузке по измерению #ДокументОтгрузки = текущий #ЗаказКлиента. (проверять это при открытии новой формы документа #ЭтапыОплатыКлиентом) 

При нажатии на кнопку $ЗаполнитьПоСоглашению в документ #ЗаказКлиента из #ЗаказКлиента.Соглашение перезаполняются только реквизиты  #ОплатаПослеЧастичнойОтгрузки, #Календарь, и реквизиты ТЧ #ГрафикОплатыСоглашения.  

!Разработчик обеспечивает перезаполнение из выбранного соглашения в том числе (к тем реквизитам, что уже сейчас перезаполняются) реквизиты: #ОплатаПослеЧастичнойОтгрузки, #Календарь, ТЧ #ГрафикОплатыСоглашения 

#ГрафикОплатыСоглашения.ВариантОплаты = #Соглашение.ВариантОплаты 

#ГрафикОплатыСоглашения.Сдвиг = #Соглашение.Сдвиг 

#ГрафикОплатыСоглашения.ПроцентПлатежа = #Соглашение.ПроцентПлатежа 

При записи #Документ.ЗаказКлиента проверять, что в ТЧ #ГрафикОплатыСоглашения: 

Если ТЧ заполнена, то сумма по реквизиту #ГрафикОплатыСоглашения.ПроцентПлатежа = 100. 

Если эта ТЧ не заполнена, то заполнять ее так: 

#ВариантОплаты = #Перечисление.ВариантыОплатыКлиентом.КредитПланПослеОтгрузки; 

#Сдвиг = 0 

#ПроцентПлатежа = 100 

!Разработчик обеспечивает заполнение новых реквизитов: #ОплатаПослеЧастичнойОтгрузки, #Календарь, ТЧ #ГрафикОплатыСоглашения при создании нового #Документа.ЗаказКлиента из формы #Документа.ЭФКО_БланкПроекта. Эти реквизиты заполняются из одноименных реквизитов #Документа.ЭФКО_БланкПроекта и его ТЧ #ГрафикОплатыСоглашения. 

!Разработчик дорабатывает алгоритм подбора проектов в #Документа.ЗаказКлиента.Товары, а именно: 

 

добавляет в структуру отбора списка доступных для выбора документов типа #ЭФКО_БланкПроекта реквизиты #ЗаказКлиента.ОплатаПослеЧастичнойОтгрузки, #ЗаказКлиента.Календарь и табличную часть #ЗаказКлиента.ГрафикОплатыСоглашения. Таким образом, в результирующий список доступных для подбора документов должны попасть те проекты, у которых эти реквизиты совпадают с аналогичными реквизитами Заказа клиента. При выдаче списка доступных для подбора проектов, в окне сообщений выдать список реквизитов, участвующих в отборе: 

“Выдан список доступных проектов для подбора в статусе “В работе”, которые еще не включены ни в одно Приложение (документ “Заказ клиента”). Список отобран по следующим параметрам: 

Соглашение = [ЗаказКлиента.Соглашение.ссылка] 

Контрагент = [ЗаказКлиента.Контрагент.ссылка] 

Партнер = [ЗаказКлиента.Партнер.ссылка] 

Договор = [ЗаказКлиента.Договор.ссылка] 

Организация = [ЗаказКлиента.Организация.ссылка] 

Форма оплаты = [ЗаказКлиента.ФормаОплаты.ссылка] 

Порядок оплаты = [ЗаказКлиента.ПорядокОплаты.ссылка] 

Порядок расчетов = [ЗаказКлиента.ПорядокРасчетов.ссылка] 

Оплата после каждой частичной отгрузки = [ЗаказКлиента.ОплатаПослеЧастичнойОтгрузки] (ДА/НЕТ) 

(далее найти строки по предоплате и по кредиту в #ЗаказКлиента.ГрафикОплатыСоглашения) 

Предоплата: [ПроцентПлатежа]% через [Сдвиг] ([?(ЗначениеЗаполнено(ЗаказКлиента.Календарь),раб.дн,календ.дн.)]) 

Кредит: [ПроцентПлатежа]% через [Сдвиг] ([?(ЗначениеЗаполнено(ЗаказКлиента.Календарь),раб.дн,календ.дн.)]) 

2.2

Классификация дат оплаты клиента

С точки зрения видов оплаты различают Предоплату (до отгрузки) и Постоплату (Кредит после отгрузки) 

С точки зрения правомерности ожидания оплаты от клиента по договору различают планируемую оплату (были запланированы отгрузки тиража в СУУ) и ожидаемую оплату клиента (были завершены физические отгрузки тиража в СУУ, а значит, и созданы финансовые документы на отгрузку). 

Предоплата клиента бывает только ожидаемой. 

Постоплата клиента бывает и планируемой, и ожидаемой. 

2.3

Определение ожидаемой даты предоплаты и планируемой даты постоплаты клиента

Если в документе “Заказ клиента” указан “График оплаты клиента”, включающий предоплату (до отгрузки), то при проведении документа “Заказ клиента” производится вычисление самой поздней даты из дат документов “Бланк проекта”, включенных в этот заказ. Таким образом, получаем СамуюСтаршуюДатуСогласованияПроектовПриложения. Прибавляем к ней Срок отсрочки платежа для Предоплаты и получаем Ожидаемую дату предоплаты клиента. Сумма оплаты при этом определяется исходя из сумм Бланков проектов, включенных в заказ клиента, скорректированных на процент предоплаты. 

Если в документе “Заказ клиента” указан “График оплаты клиента”, включающий постоплату(кредит (после отгрузки)), то при проведении документа “Заказ клиента” производится вычисление самой поздней даты из дат отгрузки всей партии тиража по документам “Бланк проекта”, включенных в этот заказ. Таким образом, получаем СамуюСтаршуюДатуОтгрузкиВсегоТиражаПроектовПриложения. Прибавляем к ней Срок отсрочки платежа для Постоплаты и получаем Планируемую дату постоплаты клиента. Сумма оплаты при этом определяется исходя из сумм Бланков проектов, включенных в заказ клиента, скорректированных на процент постоплаты. 

!Разработчик в #Документ.ЗаказКлиента добавляет новый реквизит #ДатаСогласованияПроектов и выносит его на форму документа для возможности только просмотра (реквизит #ЖелаемаяДатаОтгрузки тоже сделать недоступным для редактирования): 

!Разработчик дорабатывает процедуру перед записью для #Документа.ЗаказКлиента, а именно:  

1.#ЗаказКлиента.ДатаСогласованияПроектов = Максимум(#ЗаказКлиента.Товары.ЭФКО_БланкПроекта.Дата) по документам проектов, включенных в ТЧ #ЗаказКлиента.Товары. Если эта дата уже заполнена, то дата не перезаполняется! 

2.#ЗаказКлиента.ЖелаемаяДатаОтгрузки = Максимум(#ЗаказКлиента.Товары.ЭФКО_БланкПроекта.ЖелаемаяДатаОтгрузки) по документам проектов, включенных в ТЧ #ЗаказКлиента.Товары. Если эта дата уже заполнена, то дата не перезаполняется! 

3.Прописывает новый алгоритм заполнения ТЧ #Документа.ЗаказКлиента.ЭтапыГрафикаОплаты. @СУУ должна создавать новые #Записи в ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты по #Строкам из ТЧ #Документа.ЗаказКлиента.ГрафикОплатыСоглашения: 

#Запись.ВариантОплаты = #Строка.ВариантОплаты 

#Запись.ПроцентПлатежа = #Строка.ПроцентПлатежа 

#Запись.ДатаПлатежа = см. алгоритм ниже* 

#Запись.СуммаПлатежа = по не отмененным строкам в ТЧ #Товары.Итог(“СуммаСНДС”)*#Строка.ПроцентПлатежа/100 

*Если #Строка.ВариантОплаты = Предоплата, то #Запись.ДатаПлатежа = #ЗаказКлиента.ДатаСогласованияПроектов + #Строка.Сдвиг (для предоплаты с учетом календарей). 

Если #Строка.ВариантОплаты = КредитПланПослеОтгрузки, то #Запись.ДатаПлатежа = #ЗаказКлиента.ЖелаемаяДатаОтгрузки + #Строка.Сдвиг (для кредита с учетом календарей). 

Типовые проверки на соотношение дат ЖелаемойДатыОТгрузки, ДатПлатежей и Даты самого документа - отключить. 

Для Примера 1 имеем Заказ клиента 1: 

После проведения такого Заказа клиента 1 СУУ вычислит даты: 

СамаяСтаршаяДатаСогласованияПроектовПриложения = 05.12.18; 

ОжидаемаяДатаПредоплатыКлиента = 05.12.18+3(кален.дня) = 08.12.18; 

СамаяСтаршаяДатаОтгрузкиВсегоТиражаПроектовПриложения = 10.01.19; 

ПланируемаяДатаПостоплатыКлиента = 10.01.19+5(кален.дня) = 15.01.19; 

и суммы:  

Для Примера 2 имеем Заказ клиента 2: 

После проведения такого Заказа клиента 2 СУУ вычислит даты: 

СамаяСтаршаяДатаСогласованияПроектовПриложения = 07.12.18; 

ОжидаемаяДатаПредоплатыКлиента = 07.12.18+5(раб.дня) = 14.12.18; 

СамаяСтаршаяДатаОтгрузкиВсегоТиражаПроектовПриложения = 10.01.19; 

ПланируемаяДатаПостоплатыКлиента = 10.01.19+10(раб.дня) = 24.01.19; 

и суммы: 

 

!Разработчик дорабатывает процедуру проведения #Документа.ЗаказКлиента: 

Если в результате текущего проведения #ЗаказаКлиента (т.е. после проведения) получится так, что остаток #РН.ТоварыКОтгрузке по измерениям 

ДокументОтгрузки = текущий  #ЗаказКлиента  

Склад, Получатель, Номенклатура, Характеристика 

будет меньше остатка по ресурсу “Количество” в #РН.ЭР_ЭФКО_ЗапланированныеПеревозки по измерениям 

ДокументРаспоряжение = текущий #ЗаказКлиента, 

Склад, Партнер, Номенклатура, Характеристика 

 то Отказ от проведения и выдать сообщение пользователю: 

“По [#ЗаказуКлиента] есть остаток запланированных перевозок. Нет возможности провести данный документ, потому что, возможно, Вы уменьшили количество продукции, которое раньше стояло “К отгрузке”.” 

!Разработчик дорабатывает процедуру проведения #Документа.ЗаказКлиента по #РН.ЭР_ЭтапыГрафикаОплатыПроектов: 

-Если в ТЧ #Документ.ЗаказКлиента.ГрафикОплатыСоглашения есть строка с ВариантомОплаты = Предоплата, то 

#СдвигПредоплаты = #ТЧ.ГрафикОплатыСоглашения.Сдвиг 

#ПроцентПредоплаты = #ТЧ.ГрафикОплатыСоглашения.ПроцентПлатежа 

Иначе  

#СдвигПредоплаты = 0 

#ПроцентПредоплаты = 0  

-Если в ТЧ #Документ.ЗаказКлиента.ГрафикОплатыСоглашения есть строка с ВариантомОплаты = КредитПланПослеОтгрузки, то  

#СдвигКредита = #ТЧ.ГрафикОплатыСоглашения.Сдвиг 

#ПроцентКредита = #ТЧ.ГрафикОплатыСоглашения.ПроцентПлатежа 

Иначе  

#СдвигКредита = 0 

#ПроцентКредита = 0  

-Сворачиваем ТЧ #ЗаказКлиента.Товары только по не отмененным строкам по реквизиту #ЭФКО_БланкПроекта, суммируемый реквизит “Количество” - выгружаем в #ТЗ.ПроектыПоЗК. Для каждого #ТЗ.ПроектыПоЗК.ЭФКО_БланкПроекта добавляем #Записи в #РН.ЭР_ЭтапыГрафикаОплатыПроектов: 

1.Если в ТЧ #Документ.ЗаказКлиента.ГрафикОплатыСоглашения есть строка с ВариантомОплаты = Предоплата, то 

#Запись.Период = #ЗаказКлиента.Дата; 

#Запись.Заказ  = #ЗаказКлиента.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.ЭФКО_БланкПроекта; 

#Запись.Предоплата = #ТЗ.ПроектыПоЗК.Количество * #ПроцентПредоплаты; 

#Запись.ДатаПлатежа = #ЗаказКлиента.ДатаСогласованияПроектов + #СдвигПредоплаты (с учетом календаря) 

2.Если в ТЧ #Документ.ЗаказКлиента.ГрафикОплатыСоглашения есть строка с ВариантомОплаты = КредитПланПослеОтгрузки, то 

#Запись.Период = #ЗаказКлиента.Дата; 

#Запись.Заказ  = #ЗаказКлиента.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.ЭФКО_БланкПроекта; 

#Запись.КредитПлан = #ТЗ.ПроектыПоЗК.Количество * #ПроцентКредита; 

#Запись.ДатаПлатежа = #ЗаказКлиента.ЖелаемаяДатаОтгрузки + #СдвигКредита (с учетом календаря)

3.В любом случае делается запись о планировании отгрузки: 

#Запись.Период = #ЗаказКлиента.Дата; 

#Запись.Заказ  = #ЗаказКлиента.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.ЭФКО_БланкПроекта; 

#Запись.ОтгрузкаПлан = #ТЗ.ПроектыПоЗК.Количество; 

#Запись.ДатаПлатежа = #ЗаказКлиента.ЖелаемаяДатаОтгрузки 

2.4

Определение плановой даты постоплаты клиента документом “Заявка на перевозку” (детализация расчетов по Накладным)

При проведении документов “Заявка на перевозку” и “Отмена заявки на перевозку” для распоряжений типа “Заказ клиента”, в которых используется “График оплаты клиента” с типом оплаты клиента “Постоплата” с детализацией расчетов по Накладным, СУУ делает отметку, что необходимо запланировать (скорректировать план) оплаты от клиента относительно планируемых дат отгрузки.  

Планируемая дата оплаты клиента = Планируемая дата отгрузки + отсрочка постоплаты. 

Планируемая сумма оплаты клиента = Количество тиража планируемой отгрузки * Цена продукции из Бланка проекта * Коэффициент постоплаты. 

Для Примера 1 имеем Заказ клиента 1 и несколько Заявок на перевозку, которые планируют отгрузку тиража продукции клиента: 

После проведения каждой из “Заявок на перевозку” СУУ фиксирует, что по Заказу клиента 1 необходимо сделать корректировки дат планируемой постоплаты. С некоторым временным лагом (например, раз в 5 минут) СУУ обрабатывает все такие корректировки и вносит изменения в Заказ клиента 1 и перепроводит его. В результате по Заказу клиента 1 в СУУ будет зафиксирована следующая информация: 

 Пояснение:  

1.Ожидаемые сроки предоплаты не изменились; 

2.18.12.18 было запланировано отгрузить продукции на 10 000 руб. Соответственно, через отсрочку постоплаты (5 календ. дней), т.е. 23.12.18 было запланировано получить оплату от клиента 10 000 * 90% = 9 000 руб; 

3.23.12.18 было запланировано отгрузить продукции на 15 000 руб. Соответственно, через отсрочку постоплаты (5 календ. дней), т.е. 28.12.18 было запланировано получить оплату от клиента 15 000 * 90% = 13 500 руб; 

4.29.12.18 было запланировано отгрузить продукции на 25 000 руб. Соответственно, через отсрочку постоплаты (5 календ. дней), т.е. 03.01.19 было запланировано получить оплату от клиента 25 000 * 90% = 22 500 руб; 

5.Дата отгрузки остального тиража не изменилась и осталась равной максимальной дате отгрузки по всем Бланкам проектов = 10.01.19. Соответственно, через 5 календ. дней можно планировать получить постоплату клиента за оставшийся тираж по проектам. 

!Разработчик дорабатывает процедуру проведения #Документа.ЭР_ЭФКО_ЗаявкаНаПеревозку по #РН.ЭР_ЭтапыГрафикаОплатыПроектов: 

-сворачиваем ТЧ #ЭР_ЭФКО_ЗаявкаНаПеревозку.Товары по реквизитам #БланкПроекта, #ДатаПеревозки, #ДокументРаспоряжение, суммируемый реквизит “Количество” - выгружаем в #ТЗ.ПроектыПоЗК. Отбираем из #ТЗ.ПроектыПоЗК только те записи, в которых тип значения (#ТЗ.ПроектыПоЗК.ДокументРаспоряжение) равен #ЗаказКлиента. Для каждой строки из #ТЗ.ПроектыПоЗК добавляем #Записи в #РН.ЭР_ЭтапыГрафикаОплатыПроектов: 

-если в ТЧ #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ГрафикОплатыСоглашения есть строка с ВариантомОплаты = КредитПланПослеОтгрузки, то  

#СдвигКредита=#ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ГрафикОплатыСоглашения.Сдвиг 

#ПроцентКредита = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ГрафикОплатыСоглашения. 

ПроцентПлатежа 

и делается следующих две записи, если #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ЖелаемаяДатаОтгрузки + #СдвигКредита (с учетом календаря) <> #ТЗ.ПроектыПоЗК.ДатаПеревозки + #СдвигКредита (с учетом календаря). (Корректируем планируемую дату получения постоплаты за товар, который запланировали к отгрузке на ДатуПеревозки): 

Первая запись: 

#Запись.Период = #ЭР_ЭФКО_ЗаявкаНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.КредитПлан = (-1) * #ТЗ.ПроектыПоЗК.Количество * ПроцентКредита; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ЖелаемаяДатаОтгрузки + #СдвигКредита (с учетом календаря) 

Вторая запись: 

#Запись.Период = #ЭР_ЭФКО_ЗаявкаНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.КредитПлан = #ТЗ.ПроектыПоЗК.Количество * ПроцентКредита; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДатаПеревозки + #СдвигКредита (с учетом календаря) 

Этих записей может и не быть в случае, если по #ТЗ.ПроектыПоЗК.ДокументРаспоряжение нет ВариантаОплаты = КредитПланПослеОтгрузки (всё планируется оплатить в предоплату)

если  #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ЖелаемаяДатаОтгрузки <>  #ТЗ.ПроектыПоЗК.ДатаПеревозки, то делается две записи о корректировке даты планирования отгрузки: 

Первая запись: 

#Запись.Период = #ЭР_ЭФКО_ЗаявкаНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.ОтгрузкаПлан = (-1) * #ТЗ.ПроектыПоЗК.Количество; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ЖелаемаяДатаОтгрузки 

Вторая запись: 

#Запись.Период = #ЭР_ЭФКО_ЗаявкаНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.ОтгрузкаПлан = #ТЗ.ПроектыПоЗК.Количество; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДатаПеревозки 

в любом случае делается запись о заявленном к перевозке количестве: 

#Запись.Период = #ЭР_ЭФКО_ЗаявкаНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.ЗапланированоЗаявками = #ТЗ.ПроектыПоЗК.Количество; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДатаПеревозки 

!Разработчик дорабатывает процедуру проведения #Документа.ЭР_ЭФКО_ОтменаЗаявокНаПеревозку по #РН.ЭР_ЭтапыГрафикаОплатыПроектов: 

-сворачиваем ТЧ #ЭР_ЭФКО_ОтменаЗаявокНаПеревозку.Товары по реквизитам #БланкПроекта, #ДатаПеревозки, #ДокументРаспоряжение, суммируемый реквизит “Количество” - выгружаем в #ТЗ.ПроектыПоЗК. Отбираем из #ТЗ.ПроектыПоЗК только те записи, в которых тип значения (#ТЗ.ПроектыПоЗК.ДокументРаспоряжение) равен ЗаказКлиента. Для каждой строки из #ТЗ.ПроектыПоЗК добавляем #Записи в #РН.ЭР_ЭтапыГрафикаОплатыПроектов: 

-если в ТЧ #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ГрафикОплатыСоглашения есть строка с ВариантомОплаты = КредитПланПослеОТгрузки, то  

#СдвигКредита=#ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ГрафикОплатыСоглашения.Сдвиг 

#ПроцентКредита = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ГрафикОплатыСоглашения. 

ПроцентПлатежа 

и делается следующих две записи, если #ТЗ.ПроектыПоЗК.ДатаПеревозки + #СдвигКредита (с учетом календаря) <> #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ЖелаемаяДатаОтгрузки + #СдвигКредита (с учетом календаря). осстанавливаем планируемую дату получения постоплаты за товар, который теперь планируется к отгрузке на ЖелаемуюДатуОтгрузки из ЗаказаКлиента): 

Первая запись: 

#Запись.Период = #ЭР_ЭФКО_ОтменаЗаявокНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.КредитПлан = (-1) * #ТЗ.ПроектыПоЗК.Количество * #ПроцентКредита; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДатаПеревозки + #СдвигКредита (с учетом календаря) 

Вторая запись: 

#Запись.Период = #ЭР_ЭФКО_ОтменаЗаявокНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.КредитПлан = #ТЗ.ПроектыПоЗК.Количество * #ПроцентКредита; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ЖелаемаяДатаОтгрузки + #СдвигКредита (с учетом календаря) 

Этих записей может и не быть в случае, если по #ТЗ.ПроектыПоЗК.ДокументРаспоряжение нет ВариантаОплаты = КредитПланПослеОТгрузки (всё планируется оплатить в предоплату) 

Если #ТЗ.ПроектыПоЗК.ДатаПеревозки <> #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ЖелаемаяДатаОтгрузки, то делается две записи о корректировке даты планирования отгрузки: 

Первая запись: 

#Запись.Период = #ЭР_ЭФКО_ОтменаЗаявокНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.ОтгрузкаПлан = (-1) * #ТЗ.ПроектыПоЗК.Количество; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДатаПеревозки 

Вторая запись: 

#Запись.Период = #ЭР_ЭФКО_ОтменаЗаявокНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.ОтгрузкаПлан = #ТЗ.ПроектыПоЗК.Количество; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ЖелаемаяДатаОтгрузки 

в любом случае делается запись об отмене заявленного к перевозке количества: 

#Запись.Период = #ЭР_ЭФКО_ОтменаЗаявокНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.ЗапланированоЗаявками = (-1) * #ТЗ.ПроектыПоЗК.Количество; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДатаПеревозки 

При открытии !Пользователем формы #Документ.ЗаказКлиента.ЭтапыОплатыКлиентом если ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты уже заполнена и ТЧ #ЗаказКлиента.ГрафикОплатыСоглашения содержит строку с ВариантомОплаты = КредитПланПослеОтгрузки, то @СУУ делает доступной новую кнопку на форме под названием $ПересчитатьЭтапыПлатежей. При нажатии на кнопку:  

-если #Документ.ЗаказКлиента.ФормаДокумента уже модифицирована, то @СУУ предлагает записать документ. Если пользователь не соглашается, то возврат; 

-записывает документ. Если не отказ, то идем дальше; 

-выгружает ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты в таблицу значений #ТЗ_ПредыдущаяВерсияЭтапов для последующего сравнения с полученным результатом заполнения; 

-производит перезаполнение ТЧ #Документ.ЗаказКлиента.ЭтапыГрафикаОплаты по следующему алгоритму : 

АЛГОРИТМ ПЕРЕЗАПОЛНЕНИЯ ЗК.ЭтапыГрафикаОплаты ПРИ ОПЛАТЕ ПОСЛЕ КАЖДОЙ НАКЛАДНОЙ: 

1.Если #ЗаказКлиента.ОплатаПослеЧастичнойОтгрузки = Истина, то записи в #РН.ЭР_ЭтапыГрафикаОплатыПроектов отбираются по значению измерения #Заказ = текущий #ЗаказКлиента.Ссылка; 

Записи группируются по значениям измерений #ДатаПлатежа, #Проект. Суммируемые функции:  

#СуммаПредоплаты = #Предоплата * #Проект.ЦенаДокумента; 

#СуммаКредитаПлан = #КредитПлан * #Проект.ЦенаДокумента; 

#СуммаКредитаОжидаем = #КредитОжидаем * #Проект.ЦенаДокумента; 

#ИтогоСуммаОплат = Сумма(#СуммаПредоплаты) + Сумма(#СуммаКредитаПлан) + Сумма(#СуммаКредитаОжидаем); 

Сортировка по #ДатаПлатежа. 

Получаем таблицу: 

Рассчитываем к таблице долю каждой суммы от #ИтогоСуммаОплат. 

Получаем таблицу:  

Для каждой #ТЗСтроки из полученной таблицы значений (#ТЗ выгружена из получившейся таблицы результата запроса) делаем до трех #Записей  в ТЧ #Документ.ЗаказКлиента.ЭтапыГрафикаОплаты: 

Первая запись: 

Если #ТЗСтроки.ДоляСуммыПредоплаты <> 0 Тогда 

#Запись.ВариантОплаты = #Перечисление.ВариантыОплатыКлиентом.ПредоплатаДоОтгрузки 

#Запись.ДатаПлатежа = #ТЗСтроки.ДатаПлатежа 

#Запись.ПроцентПлатежа = #ТЗСтроки.ДоляСуммыПредоплаты * 100 

#Запись.СуммаПлатежа = по не отмененным строкам ТЧ #ЗаказКлиента.Итог(”СуммаСНДС”) * #ТЗСтроки.ДоляСуммыПредоплаты 

Вторая запись: 

Если #ТЗСтроки.ДоляСуммыКредитаПлан <> 0 Тогда 

#Запись.ВариантОплаты = #Перечисление.ВариантыОплатыКлиентом.КредитПланПослеОтгрузки 

#Запись.ДатаПлатежа = #ТЗСтроки.ДатаПлатежа 

#Запись.ПроцентПлатежа = #ТЗСтроки.ДоляСуммыКредитаПлан * 100 

#Запись.СуммаПлатежа = по не отмененным строкам ТЧ #ЗаказКлиента.Итог(”СуммаСНДС”) * #ТЗСтроки.ДоляСуммыКредитаПлан 

Третья запись: 

Если #ТЗСтроки.ДоляСуммыКредитаОжидаем <> 0 Тогда 

#Запись.ВариантОплаты = #Перечисление.ВариантыОплатыКлиентом.КредитПослеОтгрузки 

#Запись.ДатаПлатежа = #ТЗСтроки.ДатаПлатежа 

#Запись.ПроцентПлатежа = #ТЗСтроки.ДоляСуммыКредитаОжидаем * 100 

#Запись.СуммаПлатежа = по не отмененным строкам ТЧ #ЗаказКлиента.Итог(”СуммаСНДС”) * #ТЗСтроки.ДоляСуммыКредитаОжидаем 

Если в ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты.Итог(“СуммаПлатежа”) <> по не отмененным строкам ТЧ #ЗаказКлиента.Итог(”СуммаСНДС”), то разница должна быть прибавлена к большей #СуммеПлатежа из ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты так, чтобы #ЗаказКлиента.ЭтапыГрафикаОплаты.Итог(“СуммаПлатежа”) = по не отмененным строкам ТЧ #ЗаказКлиента.Итог(”СуммаСНДС”). 

Строки сортируются по ДатеПлатежа (по возрастанию). 

КОНЕЦ АЛГОРИТМА 

@СУУ сравнивает полученные строки в ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты со строками таблицы значений #ТЗ_ПредыдущаяВерсияЭтапов.  

Если есть различия, то @СУУ делает форму документа #Документ.ЗаказКлиента.ФормаДокумента модифицированной и выдает пользователю сообщение: “Этапы графика оплаты изменились. Для сохранения их в документе необходимо его записать!”; 

Если различий нет, то выдать пользователю сообщение: 

“Этапы графика оплаты не изменились!”. 

2.5

Определение плановой даты постоплаты клиента документом “Заявка на перевозку” (детализация расчетов по Заказам) 

При проведении документов “Заявка на перевозку” и “Отмена заявки на перевозку” для распоряжений типа “Заказ клиента”, в которых используется “График оплаты клиента” с типом оплаты клиента “Постоплата” с детализацией расчетов по Заказам, СУУ делает проверку: 

весь тираж по производственным проектам, включенным в Заказ клиента, запланирован на перевозку документами “Заявка на перевозку”. 

Если проверка пройдена, то СУУ делает отметку, что необходимо запланировать (скорректировать план) оплаты от клиента относительно планируемых дат отгрузки.  

Планируемая дата оплаты клиента = Максимальная дата из планируемых дат отгрузки + отсрочка постоплаты. 

Планируемая сумма оплаты клиента = Сумма Заказа клиента * Коэффициент постоплаты. 

Для Примера 2 имеем Заказ клиента 2 и несколько Заявок на перевозку, которые планируют отгрузку всего тиража всей продукции клиента: 

 

После проведения последней из “Заявок на перевозку” СУУ фиксирует, что по Заказу клиента 2 необходимо сделать корректировки дат планируемой постоплаты. С некоторым временным лагом (например, раз в 5 минут) СУУ обрабатывает все такие корректировки и вносит изменения в Заказ клиента 2 и перепроводит его. В результате по Заказу клиента 2 в СУУ будет зафиксирована следующая информация: 

Пояснение:  

Ожидаемые сроки предоплаты не изменились; 

Максимальная из запланированных дат отгрузки тиража производственной продукции, собственных работ/услуг (Услуга6) и услуг сторонних организаций равна 14.01.19 = МАКСИМУМ(10.01.19, 12.01.19, 14.01.19, 15.12.18, 26.12.18), значит, планируем, что через отсрочку постоплаты (10 раб. дней), т.е. 28.01.19 получим оплату от клиента 129 000 * 85% = 90 300 руб (по всем Бланкам проектов). Эта сумма складывается из планируемой суммы оплаты клиента по каждому из Бланков проектов, включенных в Заказ клиента. 

Процедуры проведения #Документа.ЭР_ЭФКО_ЗаявкаНаПеревозку и #Документа.ЭР_ЭФКО_ОтменаЗаявокНаПеревозку по #РН.ЭР_ЭтапыГрафикаОплатыПроектов для #ДокументаРаспоряжения с типом #ЗаказКлиента, по которому #ЗаказКлиента.ОплатаПослеЧастичнойОтгрузки = Истина, не отличается от заказа клиента, по которому #ЗаказКлиента.ОплатаПослеЧастичнойОтгрузки = Ложь. Отличается только алгоритм перезаполнения ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты, а именно: 

При открытии !Пользователем формы #Документ.ЗаказКлиента.ЭтапыОплатыКлиентом если ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты уже заполнена и ТЧ #ЗаказКлиента.ГрафикОплатыСоглашения содержит строку с ВариантомОплаты = КредитПланПослеОтгрузки, то @СУУ делает доступной новую кнопку на форме под названием $ПересчитатьЭтапыПлатежей. При нажатии на кнопку:  

-если форма документа уже модифицирована, то @СУУ предлагает записать документ. Если пользователь не соглашается, то возврат; 

-записывает документ. Если не отказ, то идем дальше; 

-выгружает ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты в таблицу значений #ТЗ_ПредыдущаяВерсияЭтапов для последующего сравнения с полученным результатом заполнения; 

-производит перезаполнение ТЧ #Документ.ЗаказКлиента.ЭтапыГрафикаОплаты по следующему алгоритму: 

АЛГОРИТМ ПЕРЕЗАПОЛНЕНИЯ ЗК.ЭтапыГрафикаОплаты ПРИ ОПЛАТЕ ВСЕГО ЗАКАЗА В ЦЕЛОМ ПО ПЕРЕНОСУ ВСЕХ ПЛАНОВЫХ ОПЛАТ 

Если #ЗаказКлиента.ОплатаПослеЧастичнойОтгрузки = Ложь, то записи в #РН.ЭР_ЭтапыГрафикаОплатыПроектов отбираются по значению измерения #Заказ = текущий #ЗаказКлиента.Ссылка; 

Записи группируются по значениям измерений #Проект. Суммируемые функции:  

#СуммаЗапланированоЗаявками = Сумма(#РН.ЭР_ЭтапыГрафикаОплатыПроектов.ЗапланированоЗаявками); 

Создается запрос к ТЧ #ЗаказКлиента.Товары, в строках которой #Товары.Отменено = Ложь и #Товары.Номенклатура.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Услуга (не отмененные, не услуги). Записи группируются по значениям измерений #ЭФКО_БланкПроекта. Суммируемые функции:  

#СуммаКоличество = #ЗаказКлиента.Товары.Количество; 

Далее по значениям группировок (по проектам) сравниваются полученные значения: 

Если #СуммаЗапланированоЗаявками <> #СуммаКоличество по какому-либо проекту, то выдать пользователю сообщение: 

“Этапы графика оплаты не изменились!” 

и сделать возврат;  

иначе записи в #РН.ЭР_ЭтапыГрафикаОплатыПроектов отбираются по значению измерения #Заказ = текущий #ЗаказКлиента.Ссылка; 

Записи группируются по значениям измерений #ДатаПлатежа, #Проект. Суммируемые функции:  

#СуммаЗапланированоЗаявками = Сумма(#РН.ЭР_ЭтапыГрафикаОплатыПроектов.ЗапланированоЗаявками); 

Выгружаем полученный результат запроса в таблицу значений и вычисляем Максимум(ТЗ.ДатаПлатежа), записываем это значение в #МаксДатаОтгрузкиПроизводственныхПроектов. 

Делаем запрос к ТЧ #ЗаказКлиента.Товары, в строках которой #Товары.Отменено = Ложь и #Товары.Номенклатура.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Услуга (не отмененные, услуги). Записи группируются по значениям измерений #ЭФКО_БланкПроекта. Выводим поля #Товары.ЭФКО_БланкПроекта.ЖелаемаяДатаОтгрузки. Вычисляем среди этих дат Максимум(#Товары.ЭФКО_БланкПроекта.ЖелаемаяДатаОтгрузки), записываем это значение в #МаксДатаОтгрузкиПроектовУслуг. 

#НоваяМаксДатаОтгрузки = Максимум(#МаксДатаОТгрузкиПРоизводственныхПРоектов,#МаксДатаОтгрузкиПроектовУслуг). 

Если #НоваяМаксДатаОтгрузки + СдвигКредита (с учетом календарей) = #ЗаказКлиента.ЖелаемаяДатаОтгрузки + СдвигКредита (с учетом календарей), то выдать пользователю сообщение: 

“Этапы графика оплаты не изменились!” 

и сделать возврат;  

иначе @СУУ создает новые #Записи в ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты  (предварительно ТЧ очищается) по #Строкам из ТЧ #ЗаказКлиента.ГрафикОплатыСоглашения: 

#Запись.ВариантОплаты = #Строка.ВариантОплаты 

#Запись.ПроцентПлатежа = #Строка.ПроцентПлатежа 

#Запись.ДатаПлатежа = см. алгоритм ниже* 

#Запись.СуммаПлатежа = по не отмененным строкам ТЧ #ЗаказКлиента.Итог(”СуммаСНДС”) * #Строка.ПроцентПлатежа/100 

*Если #Строка.ВариантОплаты = ПредоплатаДоОтгрузки, то #Запись.ДатаПлатежа = #ЗаказКлиента.ДатаСогласованияПроектов + #Строка.Сдвиг (для предоплаты с учетом календарей). 

Если #Строка.ВариантОплаты = КредитПланПослеОтгрузки, то #Запись.ДатаПлатежа = #НоваяМаксДатаОтгрузки + #Строка.Сдвиг (для кредита с учетом календарей) 

Строки сортируются по ДатеПлатежа (по возрастанию). 

КОНЕЦ АЛГОРИТМА 

@СУУ сравнивает полученные строки в ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты со строками таблицы значений #ТЗ_ПредыдущаяВерсияЭтапов.  

Если есть различия, то @СУУ делает форму документа #Документ.ЗаказКлиента.ФормаДокумента модифицированной и выдает пользователю сообщение: “Этапы графика оплаты изменились. Для сохранения их в документе необходимо его записать!”; 

Если различий нет, то выдать пользователю сообщение: 

“Этапы графика оплаты не изменились!”. 

2.6

Определение ожидаемой даты постоплаты клиента документом “Задание на перевозку” (детализация расчетов по Накладным)

При проведении документа типа “Задание на перевозку” со статусом “Закрыт” СУУ должна: 

-проверить равенство тиражей, а соответственно и сумм заявок на перевозку, включенных в “Задание на перевозку” с тиражами соответствующей продукции, включенной в финансовые документы отгрузки (накладные), указанные в “Задании на перевозку”. Если тиражи и суммы не совпадают, то СУУ не позволяет пользователю проводить такой документ “Задание на перевозку” в статусе “Закрыт” и выдает соответствующее сообщение; 

-перевести Планируемые оплаты  в Ожидаемые для случая, когда постоплата должна производится после частичной отгрузки; 

-перевести Планируемые оплаты  в Ожидаемые для случая, когда постоплата должна производится только после отгрузки всего тиража по Приложению (об этом см. Шаг 1.9). 

Для Примера 1 имеем Заказ клиента 1 и несколько Заявок на перевозку, которые вошли в “Задания на перевозку”, которые проведены в статусе “Закрыт”: 

После проведения каждого из “Заданий на перевозку” в статусе “Закрыто” СУУ фиксирует, что по Заказу клиента 1 необходимо сделать корректировки дат планируемой постоплаты. С некоторым временным лагом (например, раз в 5 минут) СУУ обрабатывает все такие корректировки и вносит изменения в Заказ клиента 1 и перепроводит его. В результате по Заказу клиента 1 в СУУ будет зафиксирована следующая информация: 

Для ожидаемых оплат Дата оплаты = Дате закрытия Задания на перевозку + отсрочка постоплаты. 

!Разработчик  вносит изменения в процедуру ПередЗаписью() для #Документа.ЗаданиеНаПеревозку: 

если среди реквизитов ТЧ #ЗаданиеНаПеревозку.Маршрут.Накладная есть документы с типом  #Документ.РеализацияТоваровУслуг, то  

-@СУУ проверяет, что каждая #ЗаданиеНаПеревозку.Маршрут.Накладная  с типом  #Документ.РеализацияТоваровУслуг проведена. Если это не выполняется, то выдаем сообщение и отказываем в записи документа: 

“Внимание! К Заданию на перевозку есть не проведенные документы отгрузки: [РТиУ1 в строке 1, РТиУ2 в строке 2 и т.д.]. Задание на перевозку не будет записано!” 

-для каждой не пустой #ЗаданиеНаПеревозку.Маршрут.Накладная, являющейся по типу документом “РеализацияТоваровУслуг” @СУУ отбирает строки в ТЧ #ЗаданиеНаПеревозку.Маршрут. По выбранным строкам производит группировку по #БланкПроекта, #Номенклатура, #Характеристика. Суммируемый реквизит #ЗаданиеНаПеревозку.Маршрут.Количество. По строкам текущей #ЗаданиеНаПеревозку.Маршрут.Накладная.Товары производит группировку по #ЭФКО_БланкПроекта, #Номенклатура, #Характеристика. Суммируемый реквизит #ЗаданиеНаПеревозку.Маршрут.Накладная.Товары.Количество. @СУУ сравнивает значения #Количество для каждого набора записей #БланкПроекта, #Номенклатура, #Характеристика, выгруженного из  #ЗаданиеНаПеревозку.Маршрут и из #ЗаданиеНаПеревозку.Маршрут.Накладная.Товары. Если есть отличия, то необходимо отказать !Пользователю в записи #Документа.ЗаданиеНаПеревозку и выдать сообщение: 

“По данным документа отгрузки [ТекущаяРТиУ] по проекту [#БланкПроекта] и продукции [#Номенклатура]([#Характеристика]) отгружается [КоличествоИзРТиУ] шт., а по данным текущего документа [ЗаданиеНаПеревозку.Ссылка] фиксируется перевозка [КоличествоИзЗаданияНаПеревозку] шт. Задание на перевозку не будет записано!”; 

!Разработчик в события на форме вносит изменения: при смене статуса #Документа.ЗаданиеНаПеревозку с “Закрыто” на другой статус очищать значение #ЗаданиеНаПеревозку.ДатаВремяРейсаФактПо. 

!Разработчик  вносит изменения в подписку на событие проведения для #Документа.ЗаданиеНаПеревозку: 

1.Восстанавливает проверку остатков по регистру накопления ЭР_ЭФКО_ЗапланированныеПеревозки на МоментВремени() документа ЗаданиеНаПеревозку (сейчас эта проверка закомментирована). 

2.Если #ЗаданиеНаПеревозку.Маршрут.Накладная.Проведен, то делаем движение расхода по строке в #РН.ЭР_ЭФКО_ЗапланированныеПеревозки (заменить условие на проверку по #ЗаданиеНаПеревозку.Статус  = Закрыто на наличие в строке #ЗаданиеНаПеревозку.Маршрут проведенного документа в реквизите #Накладная).  

3.!Разработчик дорабатывает процедуру проведения #Документа.ЗаданиеНаПеревозку по #РН.ЭР_ЭтапыГрафикаОплатыПроектов, движения в котором создаются только в том случае, если #ЗаданиеНаПеревозку.Статус = Закрыто: 

-сворачиваем ТЧ #ЗаданиеНаПеревозку.Маршрут по реквизитам #БланкПроекта, #ДатаПеревозки, #КлючСвязи. Находим по #КлючСвязи соответствующее #ЗаданиеНаПеревозку.Распоряжения.Распоряжение и заполняем дополнительную колонку в таблице “ДокументРаспоряжение”. Суммируемый реквизит #ЗаданиеНаПеревозку.Маршрут.Количество - выгружаем в #ТЗ.ПроектыПоЗК. Отбираем из #ТЗ.ПроектыПоЗК только те записи, в которых тип значения (#ТЗ.ПроектыПоЗК.ДокументРаспоряжение) равен ЗаказКлиента. Для каждой строки из #ТЗ.ПроектыПоЗК добавляем #Записи в #РН.ЭР_ЭтапыГрафикаОплатыПроектов: 

-если в ТЧ #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ГрафикОплатыСоглашения есть строка с ВариантомОплаты = Кредит, то  

#СдвигКредита=#ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ГрафикОплатыСоглашения.Сдвиг 

#ПроцентКредита = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.ГрафикОплатыСоглашения. 

ПроцентПлатежа 

и делается следующих две записи (списываем планируемую дату получения постоплаты за товар, который запланировали к отгрузке на ДатуПеревозки, и приходуем ожидаемую дату получения оплаты): 

Первая запись: 

#Запись.Период = #ЗаданиеНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.КредитПлан = (-1) * #ТЗ.ПроектыПоЗК.Количество * #ПроцентКредита; 

#Запись.ДатаПлатежа = #ТЗ.ПроектыПоЗК.ДатаПеревозки + #СдвигКредита (с учетом календаря) 

Вторая запись: 

#Запись.Период = #ЗаданиеНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.КредитОжидаем = #ТЗ.ПроектыПоЗК.Количество * #ПроцентКредита; 

#Запись.ДатаПлатежа = НачалоДня(#ЗаданиеНаПеревозку.ДатаВремяРейсаФактПо) + #СдвигКредита (с учетом календаря) 

Этих записей может и не быть в случае, если по #ТЗ.ПроектыПоЗК.ДокументРаспоряжение нет ВариантаОплаты = Кредит (всё планируется оплатить в предоплату) 

делается запись о завершении отгрузки части продукции: 

#Запись.Период = #ЗаданиеНаПеревозку.Дата; 

#Запись.Заказ  = #ТЗ.ПроектыПоЗК.ДокументРаспоряжение.Ссылка; 

#Запись.Проект = #ТЗ.ПроектыПоЗК.БланкПроекта; 

#Запись.ОтгруженоПоЗаданиямБрифамПроектам = #ТЗ.ПроектыПоЗК.Количество; 

#Запись.ДатаПлатежа = НачалоДня(#ЗаданиеНаПеревозку.ДатаВремяРейсаФактПо) 

!Разработчик  вносит изменения в #ОбщаяФорма.ЭФКО_ФормаОформленияЛичнойПеревозкиЧастиТиража в функцию   ОформитьДокументы(): 

-#Документ.ЗаданиеНаПеревозку должен создаваться со статусом “Отправлено”; 

-при успешном создании документа #Документ.ЗаданиеНаПеревозку изменить сообщение !Пользователю: 

“Создан документ [ЗаданиеНаПеревозку.Ссылка]. Обязательно оформите [?(если вызов общей формы произошел из ЗаказаКлиента, “документ на отгрузку продукции (Реализацию товаров и услуг)”, “документ на перевозку материалов”]”. 

И открыть форму созданного #Документа.ЗаданиеНаПеревозку. 

2.7

Определение ожидаемой даты постоплаты клиента документом “Бриф” (детализация расчетов по Накладным) 

При закрытии последнего Брифа из совокупности всех Брифов, оформленных к Бланкам проектов на работы/услуги (ДИЗАЙН/ВЁРСТКА/КОНСТРУКТИВ), включенных в одно “Приложение/Заказ клиента”, а также при отмене закрытия такого Брифа, СУУ фиксирует, что по Заказу клиента 1 необходимо сделать корректировки дат ожидаемой постоплаты. Причем для ожидаемых оплат Дата оплаты = Дате закрытия последнего Брифа по проекту + отсрочка постоплаты. 

Для Примера 1 и Заказ клиента 1 

Руководитель направления Дизайн Студии подтверждает закрытие последнего Брифа к “Услуге 1” (Бланк проекта 3). Бриф проводится в статусе “Работа завершена” 15.12.18. 

С некоторым временным лагом (например, раз в 5 минут) СУУ обрабатывает все такие корректировки и вносит изменения в Заказ клиента 1 и перепроводит его. В результате по Заказу клиента 1 в СУУ будет зафиксирована следующая информация: 

!Разработчик добавляет в систему: 

новое #Перечисление.СобытияСтатистикиПроекта; 

новый #РС.ЭР_СтатистикаПоПроекту; 

новый #Документ.ЭР_ЗавершениеРаботПоПроектуСобственныхУслуг; 

!Разработчик  вносит изменения в #БизнесПроцесс.ЭР_ЗавершениеРаботПоБрифу: 

если процесс завершается установкой статуса у #ТекущегоБрифа “Работы завершены”, то необходимо проверять, а все ли #Документы.Брифы, не помеченные на удаление в системе, у которых #Бриф.БланкПроекта = #ТекущийБриф.БланкПроекта имеют статус “Работы завершены”. Если да, то: 

 #РС.ЭР_СтатистикаПоПроекту делается запись по значениям измерений и ресурсов: 

#Проект = #ТекущийБриф.БланкПроекта 

#Событие = #Перечисление.СобытияСтатистикиПроекта.ДатаЗакрытияВсехБрифов 

#Дата = ТекущаяДата(), (при условии что записи по таким измерениям #Проект, #Событие еще нет в регистре) 

-потом происходит запись #ТекущегоБрифа со статусом “Работы завершены”;  

-потом производится поиск среди документов #Документ.ЭР_ЗавершениеРаботПоПроектуСобственныхУслуг такого документа, у которого реквизит #Проект = #ТекущийБриф.БланкПроекта. Если такой документ найден, то в нем записываем реквизит #Дата = ТекущаяДата() и проводим. 

Если такой документ не найден, то создаем новый. В новом документе заполняются реквизиты и он проводится: 

#Дата = ТекущаяДата(); 

#Проект = #ТекущийБриф.БланкПроекта 

!Разработчик  вносит изменения в процедуру записи #Документа.Брифы: необходимо проверять, если #ТекущийБриф имеет статус, отличный от “Работы завершены” и  

в #РС.ЭР_СтатистикаПоПроекту есть запись по значениям измерений: 

#Проект = #ТекущийБриф.БланкПроекта 

#Событие = #Перечисление.СобытияСтатистикиПроекта.ДатаЗакрытияВсехБрифов 

Если да, то в #РС.ЭР_СтатистикаПоПроекту эта запись удаляется.  

в системе есть проведенный #Документ.ЭР_ЗавершениеРаботПоПроектуСобственныхУслуг со значением #Проект = #ТекущийБриф.БланкПроекта. Если такой документ есть, то он снимается с проведения. 

!Разработчик  разрабатывает алгоритм проведения #Документа.ЭР_ЗавершениеРаботПоПроектуСобственныхУслуг: 

Если в ТЧ #Проект.ЗаказКлиента.ГрафикОплатыСоглашения есть строка с ВариантомОплаты = КредитПланПослеОтгрузки, то  

#СдвигКредита=#ЭР_ЗавершениеРаботПоПроектуСобственныхУслуг.Проект.ЗаказКлиента.ГрафикОплатыСоглашения.Сдвиг 

#ПроцентКредита = #ЭР_ЗавершениеРаботПоПроектуСобственныхУслуг.Проект.ЗаказКлиента.ГрафикОплатыСоглашения.ПроцентПлатежа 

и делается следующих две записи (списываем планируемую дату получения постоплаты за товар, который запланировали к отгрузке на ЖелаемуюДатуОтгрузки, и приходуем ожидаемую дату получения оплаты): 

Первая запись: 

#Запись.Период = #Документ.Дата; 

#Запись.Заказ  = #Документ.Проект.ЗаказКлиента.Ссылка; 

#Запись.Проект = #Документ.Проект; 

#Запись.КредитПлан = (-1) * (по не отмененным строкам ТЧ, отобранным по текущему проекту  #Документ.Проект.ЗаказКлиента.Товары.Итог(“Количество”))* #ПроцентКредита; 

#Запись.ДатаПлатежа = #Документ.Проект.ЗаказКлиента.ЖелаемаяДатаОтгрузки + #СдвигКредита (с учетом календаря) 

Вторая запись: 

#Запись.Период = #Документ.Дата; 

#Запись.Заказ  = #Документ.Проект.ЗаказКлиента.Ссылка; 

#Запись.Проект = #Документ.Проект; 

#Запись.КредитОжидаем = (по не отмененным строкам ТЧ, отобранным по текущему проекту  #Документ.Проект.ЗаказКлиента.Товары.Итог(“Количество”)) * #ПроцентКредита; 

#Запись.ДатаПлатежа = НачалоДня(#Документ.Дата) + #СдвигКредита (с учетом календаря) 

Этих записей может и не быть в случае, если по #Документ.Проект.ЗаказКлиента.ГрафикОплатыСоглашения нет ВариантаОплаты = КредитПланПослеОТгрузки (всё планируется оплатить в предоплату) 

делается запись о завершении отгрузки части продукции: 

#Запись.Период = #Документ.Дата; 

#Запись.Заказ  = #Документ.Проект.ЗаказКлиента.Ссылка; 

#Запись.Проект = #Документ.Проект; 

#Запись.ОтгруженоПоЗаданиямБрифамПроектам = (по не отмененным строкам ТЧ, отобранным по текущему проекту  #Документ.Проект.ЗаказКлиента.Товары.Итог(“Количество”)); 

#Запись.ДатаПлатежа = НачалоДня(#Документ.Дата) 

2.8

Определение ожидаемой даты постоплаты клиента по услугам сторонней организации (детализация расчетов по Накладным) 

При установке отметки об отгрузке работы/услуги в Бланке проекта на услугу, оказываемую сторонней организацией (вид продукции отличен от ДИЗАЙН/ВЁРСТКА/КОНСТРУКТИВ), включенного в Заказ клиента, а также при снятии такой отметки, СУУ фиксирует, что по Заказу клиента необходимо сделать корректировки дат ожидаемой постоплаты. Причем Ожидаемая дата оплаты = Дате установки отметки об отгрузке “сторонней” работы/услуги по проекту + отсрочка постоплаты. 

Если отметку сняли, то оплата по такому Бланку проекта переходит обратно в статус Планируемой. 

!Разработчик  добавляет новый реквизит #Отгружено в #Документ.ЭФКО_БланкПроекта. 

Эта галочка доступна в случае, если проект имеет статус “В работе”, если #БланкПроекта.НоменклатураПроекта.ТипНоменклатуры = “Услуга” и #БланкПроекта.НоменклатураПроекта.ВидПродукцииПроекта.Предопределенный = Ложь). Т.е. галочка доступна на форме проекта, который сейчас находится в работе, а в качестве НоменклатурыПроекта в нем указана услуга, которая не является предопределенной. Проверять доступность галочки при открытии формы документа #БланкПроекта и при перевыборе реквизита #БланкПроекта.НоменклатураПроекта. 

!Разработчик  вносит изменения в процедуру ОбработкаПроведения()  #Документа.ЭФКО_БланкПроекта: 

если #ЭФКО_БланкПроекта.Отгружено, тогда 

проверяем, есть ли запись в #РС.ЭР_СтатистикаПоПроекту по измерениям  

#Проект = #ЭФКО_БланкПроекта.Ссылка 

#Событие = #Перечисление.СобытияСтатистикиПроекта.ДатаОтгрузкиСторУслуги 

и если такой записи нет, то делаем ее по значениям измерений и ресурсов: 

#Проект = #ЭФКО_БланкПроекта.Ссылка 

#Событие = #Перечисление.СобытияСтатистикиПроекта.ДатаОтгрузкиСторУслуги 

#Дата = ТекущаяДата(), 

Присваиваем значение переменной #НоваяДатаОтгрузки = #РС.ЭР_СтатистикаПоПроекту.Дата. 

2) проводим этот #ЭФКО_БланкПроекта по #РН.ЭР_ЭтапыГрафикаОплатыПроектов: 

Если в ТЧ #ЭФКО_БланкПроекта.ЗаказКлиента.ГрафикОплатыСоглашения есть строка с ВариантомОплаты = КредитПланПослеОтгрузки, то  

#СдвигКредита=#ЭФКО_БланкПроекта.ЗаказКлиента.ГрафикОплатыСоглашения.Сдвиг 

#ПроцентКредита = #ЭФКО_БланкПроекта.ЗаказКлиента.ГрафикОплатыСоглашения.ПроцентПлатежа 

и делается следующих две записи (списываем планируемую дату получения постоплаты за товар, который запланировали к отгрузке на ЖелаемуюДатуОтгрузки, и приходуем ожидаемую дату получения оплаты): 

Первая запись: 

#Запись.Период = #НоваяДатаОтгрузки; 

#Запись.Заказ  = #ЭФКО_БланкПроекта.ЗаказКлиента.Ссылка; 

#Запись.Проект = #ЭФКО_БланкПроекта; 

#Запись.КредитПлан = (-1) * (по не отмененным строкам ТЧ, отобранным по текущему проекту  #ЭФКО_БланкПроекта.ЗаказКлиента.Товары.Итог(“Количество”)) * #ПроцентКредита; 

#Запись.ДатаПлатежа = #ЭФКО_БланкПроекта.ЗаказКлиента.ЖелаемаяДатаОтгрузки + #СдвигКредита (с учетом календаря) 

Вторая запись: 

#Запись.Период = #НоваяДатаОтгрузки; 

#Запись.Заказ  = #ЭФКО_БланкПроекта.ЗаказКлиента.Ссылка; 

#Запись.Проект = #ЭФКО_БланкПроекта; 

#Запись.КредитОжидаем = (по не отмененным строкам ТЧ, отобранным по текущему проекту  #ЭФКО_БланкПроекта.ЗаказКлиента.Товары.Итог(“Количество”)) * #ПроцентКредита; 

#Запись.ДатаПлатежа = НачалоДня(#НоваяДатаОтгрузки) + #СдвигКредита (с учетом календаря) 

Этих записей может и не быть в случае, если по #ЭФКО_БланкПроекта.ЗаказКлиента.ГрафикОплатыСоглашения нет ВариантаОплаты = Кредит (всё планируется оплатить в предоплату) 

делается запись о завершении отгрузки части продукции: 

#Запись.Период = #НоваяДатаОтгрузки; 

#Запись.Заказ  = #ЭФКО_БланкПроекта.ЗаказКлиента.Ссылка; 

#Запись.Проект = #ЭФКО_БланкПроекта; 

#Запись.ОтгруженоПоЗаданиямБрифамПроектам = (по не отмененным строкам ТЧ, отобранным по текущему проекту  #ЭФКО_БланкПроекта.ЗаказКлиента.Товары.Итог(“Количество”)); 

#Запись.ДатаПлатежа = НачалоДня(#НоваяДатаОтгрузки)

2.9

Определение ожидаемой даты постоплаты клиента документами “Задание на перевозку”, “Бриф” и “Бланк проекта” (детализация расчетов по Заказам)

При проведении документов “Задание на перевозку” в статусе “Закрыто”  для распоряжений типа “Заказ клиента” (а также при отмене этого статуса), документов “Бриф” в статусе “Работа завершена”(а также при отмене этого статуса), документов “Бланк проекта” с отметкой об отгрузке услуги, оказываемой сторонней организацией (вид продукции отличен от ДИЗАЙН/ВЁРСТКА/КОНСТРУКТИВ), включенной в Заказ клиента, а также при снятии такой отметки, СУУ фиксирует, что по Заказу клиента необходимо сделать корректировки дат ожидаемой постоплаты. 

СУУ делает проверку: 

1.весь тираж по производственным Бланкам проектов, включенным в Заказ клиента, включен в документы “Задание на перевозку” и эти документы имеют статус “Закрыто”; 

2.все документы типа “Бриф” к Бланкам проекта, включенным в Заказ клиента, на собственные работы/услуги компании “ЭФКО” имеют статус “Работа завершена”; 

3.все документы типа “Бланк проекта”, включенные в Заказ клиента, на  работы/услуги сторонних поставщиков имеют отметку “Отгружено”. 

Если проверка пройдена, то СУУ вносит изменения в такой Заказ клиента 2 и перепроводит его. 

Пусть для Заказа клиента 2 были закрыты все задания на перевозку продукции клиента: 

По “Услуге 6” из “Бланка проекта 6” были завершены работы по всем Брифам 13.01.19. 

По “Услуге стор. орг.” из “Бланка проекта 7” была установлена отметка “Отгружено” 15.01.19. 

 В результате по Заказу клиента 2 в СУУ будет зафиксирована следующая информация: 

Пояснение:  

1.Ожидаемые сроки предоплаты не изменились; 

2.Максимальная зафиксированных дат отгрузки тиража производственной продукции, собственных работ/услуг (Услуга6) и услуг сторонних организаций равна 15.01.19 = МАКСИМУМ(10.01.19, 12.01.19, 14.01.19, 13.01.19, 15.01.19), значит, ожидаем, что через отсрочку постоплаты (10 раб. дней), т.е. 29.01.19 получим оплату от клиента 129 000 * 85% = 90 300 руб (по всем Бланкам проектов). Эта сумма складывается из ожидаемой суммы оплаты клиента по каждому из Бланков проектов, включенных в Заказ клиента. 

Процедура проведения #Документа.ЗаданиеНаПеревозку по #РН.ЭР_ЭтапыГрафикаОплатыПроектов для #ДокументаРаспоряжения с типом #ЗаказКлиента, по которому #ЗаказКлиента.ОплатаПослеЧастичнойОтгрузки = Истина, не отличается от заказа клиента, по которому #ЗаказКлиента.ОплатаПослеЧастичнойОтгрузки = Ложь. Отличается только алгоритм перезаполнения ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты, а именно: 

При открытии !Пользователем формы #Документ.ЗаказКлиента.ЭтапыОплатыКлиентом если ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты уже заполнена и ТЧ #ЗаказКлиента.ГрафикОплатыСоглашения содержит строку с ВариантомОплаты = КредитПланПослеОтгрузки, то @СУУ делает доступной новую кнопку на форме под названием $ПересчитатьЭтапыПлатежей. При нажатии на кнопку:  

-если форма документа уже модифицирована, то @СУУ предлагает записать документ. Если пользователь не соглашается, то возврат; 

-записывает документ. Если не отказ, то идем дальше; 

-выгружает ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты в таблицу значений #ТЗ_ПредыдущаяВерсияЭтапов для последующего сравнения с полученным результатом заполнения; 

-производит перезаполнение ТЧ #Документ.ЗаказКлиента.ЭтапыГрафикаОплаты по следующему алгоритму: 

АЛГОРИТМ ПЕРЕЗАПОЛНЕНИЯ ЗК.ЭтапыГрафикаОплаты ПРИ ОПЛАТЕ ВСЕГО ЗАКАЗА В ЦЕЛОМ ПО ПЕРЕНОСУ ВСЕХ ОЖИДАЕМЫХ ОПЛАТ. 

-Если #ЗаказКлиента.ОплатаПослеЧастичнойОтгрузки = Ложь, то записи в #РН.ЭР_ЭтапыГрафикаОплатыПроектов отбираются по значению измерения #Заказ = текущий #ЗаказКлиента.Ссылка; 

Записи группируются по значениям измерений #Проект. Суммируемые функции:  

#СуммаОтгруженоПоЗаданиямБрифамПроектам = Сумма(#РН.ЭР_ЭтапыГрафикаОплатыПроектов.ОтгруженоПоЗаданиямБрифамПроектам) 

Создается запрос к ТЧ #ЗаказКлиента.Товары, в строках которой #Товары.Отменено = Ложь (не отмененные). Записи группируются по значениям измерений #ЭФКО_БланкПроекта. Суммируемые функции:  

#СуммаКоличество = Сумма(#ЗаказКлиента.Товары.Количество); 

Далее по значениям группировок (по проектам) сравниваются полученные значения: 

Если #СуммаОтгруженоПоЗаданиямБрифамПроектам <> #СуммаКоличество по какому-либо проекту, то произвести АЛГОРИТМ ПЕРЕЗАПОЛНЕНИЯ ЗК.ЭтапыГрафикаОплаты ПРИ ОПЛАТЕ ВСЕГО ЗАКАЗА В ЦЕЛОМ ПО ПЕРЕНОСУ ВСЕХ ПЛАНОВЫХ ОПЛАТ. из п.1.4. 

и Возврат. 

иначе записи в #РН.ЭР_ЭтапыГрафикаОплатыПроектов отбираются по значению измерения #Заказ = текущий #ЗаказКлиента.Ссылка; 

Записи группируются по значениям измерений #ДатаПлатежа, #Проект. Суммируемые функции:  

#СуммаОтгруженоПоЗаданиямБрифамПроектам = Сумма(#РН.ЭР_ЭтапыГрафикаОплатыПроектов.ОтгруженоПоЗаданиямБрифамПроектам) 

Выгружаем полученный результат запроса в таблицу значений и вычисляем Максимум(#ТЗ.ДатаПлатежа), записываем это значение в #НоваяМаксДатаОтгрузки. 

@СУУ создает новые #Записи в ТЧ #ЗаказКлиента.ЭтапыГрафикаОплат по #Строкам из ТЧ #Документа.ЗаказКлиента.ГрафикОплатыСоглашения: 

#Запись.ВариантОплаты = ?(#Строка.ВариантОплаты = Предоплата, #Строка.ВариантОплаты, Перечисление.ВариантыОплатКлиентом.КредитПослеОтгрузки) 

#Запись.ПроцентПлатежа = #Строка.ПроцентПлатежа 

#Запись.ДатаПлатежа = см. алгоритм ниже* 

#Запись.СуммаПлатежа = по не отмененным строкам ТЧ #ЗаказКлиента.Товары.Итог(“СуммаСНДС”)*#Строка.ПроцентПлатежа/100 

*Если #Строка.ВариантОплаты = Предоплата, то #Запись.ДатаПлатежа = #ЗаказКлиента.ДатаСогласованияПроектов + #Строка.Сдвиг (для предоплаты с учетом календарей). 

Если #Строка.ВариантОплаты = КредитПланПослеОтгрузки, то #Запись.ДатаПлатежа = #НоваяМаксДатаОтгрузки + #Строка.Сдвиг (для кредита с учетом календарей) 

Строки сортируются по ДатеПлатежа (по возрастанию). 

КОНЕЦ АЛГОРИТМА 

@СУУ сравнивает полученные строки в ТЧ #ЗаказКлиента.ЭтапыГрафикаОплаты со строками таблицы значений #ТЗ_ПредыдущаяВерсияЭтапов.  

Если есть различия, то @СУУ делает форму документа #Документ.ЗаказКлиента.ФормаДокумента модифицированной и выдает пользователю сообщение: “Этапы графика оплаты изменились. Для сохранения их в документе необходимо его записать!”; 

Если различий нет, то выдать пользователю сообщение: 

“Этапы графика оплаты не изменились!”.

3. Автоматизированный перенос Заявок на перевозку на следующую дату

Шаг

Действие

3.1

Определение заявок на перевозку для переноса 

В СУУ настраивается регламентное задание, которое в определенное время ночи текущей даты обрабатывает все остатки по Запланированным перевозкам. Рассматриваются остатки с датой отгрузки меньше, чем текущая дата и не включенные ни в один документ типа “Задание на перевозку”, т.е. еще не обработанные логистом. Такие остатки Запланированных перевозок переносятся на дату отгрузки, равную текущей дате. 

Таким образом, после переноса планируемых дат отгрузки, переносятся и планируемые даты оплаты от клиента. 

!Разработчик добавляет в #РС.ТоварыКДоставке новое измерение #НакладнаяПроведена (тип Булево). 

!Разработчик вносит изменения в процедуру ОбработкаПроведения() #Документа.ЗаданиеНаПеревозку: 

при создании записей в #РС.ТоварыКДоставке делать отметку в измерении #РС.ТоварыКДоставке.НакладнаяПроведена = Истина, если эта запись создана по строке #Документа.ЗаданиеНаПеревозку.Маршрут, в которой #Документа.ЗаданиеНаПеревозку.Маршрут.Накладная.Проведен = Истина. 

(#РС.ТоварыКДоставке.НакладнаяПроведена = #Документа.ЗаданиеНаПеревозку.Маршрут.Накладная.Проведен). 

В АРМ #ЗаявкиНаПеревозку с видом “Уже запланированные перевозки”: из остатка по регистру #ЗапланированныеПеревозки вычитать только то “Количество” из записей #РС.ТоварыКДоставке, что имеют измерение #НакладнаяПроведена = Ложь. 

 

В АРМ #Доставка для формирования списка распоряжений на вкладке “Формирование заданий на перевозку”: из остатка по регистру #ЗапланированныеПеревозки вычитать только то “Количество” из записей #РС.ТоварыКДоставке, что имеют измерение #НакладнаяПроведена = Ложь. 

В #Документе.ЗаданиеНаПеревозку для формирования списка распоряжений принажатии на кнопку $ДобавитьРаспоряжение на вкладке “Маршрут”: из остатка по регистру #ЗапланированныеПеревозки вычитать только то “Количество” из записей #РС.ТоварыКДоставке, что имеют измерение #НакладнаяПроведена = Ложь. 

!Разработчик создает регламентное задание #ПереносЗаявокНаПеревозку со следующим обработчиком: из остатка по #РН.ЗапланированныеПеревозки, у которых #ДатаПеревозки < НачалоДня(ТекущаяДата()) вычесть только те записи #РС.ТоварыКДоставке, что имеют измерение #НакладнаяПроведена = Ложь, ввести на них: 

1) документы #ОтменаЗаявокНаПеревозку; 

2) #ЗаявкаНаПеревозку с #ДатаПеревозки = ТекущаяДата(). 

4. Автоматизированное создание документа Счет-фактура выданный

Шаг

Действие

4.1

Создание документа “Счет-фактура выданный” 

1.При автоматическом создании документа “Реализация товаров и услуг” при заполнении информации логистом в документе “Задание на перевозку” после нажатия им на кнопку “Оформить накладные и ТТН” (при подготовке документов для перевозки тиража), документ “Счет-фактура выданный” должен формироваться тоже автоматически на основании документа “Реализация товаров и услуг”. Документ “Счет-фактура выданный” должен формироваться автоматически на основании документа “Реализация товаров и услуг” также и при ручном создании документа “Реализация товаров и услуг”; 

2.При ручном создании документа “Акт выполненных работ” документ “Счет-фактура выданный” должен формироваться автоматически  

Таким образом, обеспечивается необходимая пара документов, сопровождающих отгрузку товаров и услуг Организации. 

!Разработчик добавляет подписку на событие ОбработкаПроведения() #Документа.РеализацияТоваровУслуг: если Не Отказ, то ищет введенный на основании РТиУ документ СчетФактураВыданный и проводит его. Если не находит, то вводит на основании РТиУ новый документ СчетФактураВыданный и проводит его. Выдает сообщение !Пользователю: 

“Проведены документы: 

[РТиУ.Ссылка] 

[CФВыданный.Ссылка]” 

!Разработчик добавляет подписку на событие ОбработкаУдаленияПроведения() #Документа.РеализацияТоваровУслуг: если Не Отказ, то ищет введенный на основании РТиУ документ СчетФактураВыданный и делает его не проведенным. Выдает сообщение !Пользователю: 

“Сняты с проведения документы: 

[РТиУ.Ссылка] 

[CФВыданный.Ссылка]” 

!Разработчик добавляет подписку на событие ПередУдалением() #Документа.РеализацияТоваровУслуг: если Не Отказ, то ищет введенный на основании РТиУ документ СчетФактураВыданный и помечает его на удаление. Выдает сообщение !Пользователю: 

“Помечены на удаление: 

[РТиУ.Ссылка] 

[CФВыданный.Ссылка]” 

Аналогичным образом необходимо добавить 2 подписки на события проведения и удаление проведения документа #АктВыполненныхРабот.

5. Создание документов для печати и отправки их клиенту

Шаг

Действие

5.1

Определение списка документов для печати для ожидания предоплаты от клиента 

При проведении документа типа “Заказ клиента”, в котором используется “График оплаты клиента” с типом оплаты клиента “Предоплата” определяется дата ожидаемого получения этой предоплаты. Чтобы ожидать предоплату, для некоторых договоров с клиентами необходимо распечатать “Счет на оплату”(печ.форма) на величину предоплаты и “Приложение”(печ.форма). 

Для каждого договора с клиентом в карточке договора устанавливаются значения: 

-“Счет на оплату” обязателен - возможные значения ДА/НЕТ; 

-“Приложение” обязательно - возможные значения ДА/НЕТ (что в том числе означает, что печатную форму “Приложение” печатает наша Организация). 

По умолчанию, эти значения заполняются значением НЕТ (т.е. данные печатные формы для договора с клиентом не обязательны для ожидания оплаты от клиента). 

!Разработчик добавляет новые реквизиты #СчетНаОплатуОбязательно и #ПриложениеОбязательно в #Справочник.ДоговорыКонтрагентов и выносит их для редактирования на форму справочника (эти реквизиты видны на форме только в том случае, если #ДоговорыКонтрагентов.ТипДоговора = СПокупателем): 

 

Для Примера1 после проведения Заказа клиента 1 имеем следующие даты ожидания и планирования оплаты от клиента: 

 

Если по договору с клиентом из Заказа клиента 1, печать Счета на оплату и/или Приложения не обязательна, то Отчет “Состояние выполнения заказа клиента” выглядит следующим образом (см. в строке с этапом оплаты “Предоплата (до отгрузки)”, где Сумма оплаты по плану > 0, в колонках “Счет” и “Приложение”): 

 

Далее рассмотрим случай, когда по договору с клиентом из Заказа клиента 1, печать Счета на оплату и/или Приложения обязательна: 

Если Счет на оплату не сформирован, а Приложение не напечатано, то Отчет “Состояние выполнения заказа клиента” выглядит следующим образом (см. в строке с этапом оплаты “Предоплата (до отгрузки)”, где Сумма оплаты по плану > 0, в колонках “Счет” и “Приложение”): 

     

!Разработчик добавляет в систему новый #РС.ЭР_ОбменПечатнымиФормами. 

На форму #Документа.СчетНаОплату выносит новый реквизит формы #ПечФормаОтправлена, который не изменяет данные, и при редактировании этого реквизита на форме происходит запись (если значение=ИСТИНА) или удаление записи (если значение=ЛОЖЬ) в #РС.ЭР_ОбменПечатнымиФормами: 

#РС.ЭР_ОбменПечатнымиФормами.Период = ТекущаяДата(); 

#РС.ЭР_ОбменПечатнымиФормами.Документ = #СчетНаОплату.Ссылка; 

#РС.ЭР_ОбменПечатнымиФормами.Отправлен = Истина: 

 

На форму #Документа.ЗаказКлиента выносится новый реквизит формы #ПечФормаОтправлена, который не изменяет данные, и при редактировании этого реквизита на форме происходит запись или удаление записи в #РС.ЭР_ОбменПечатнымиФормами: 

#РС.ЭР_ОбменПечатнымиФормами.Период = ТекущаяДата(); 

#РС.ЭР_ОбменПечатнымиФормами.Документ = #ЗаказКлиента.Ссылка; 

#РС.ЭР_ОбменПечатнымиФормами.Отправлен = Истина: 

 

Надпись с названием реквизита на форме должна быть красной, если ЗначениеЗаполнено(#ЗаказКлиента.Договор) и #ЗаказКлиента.Договор.ОбязательноПриложение. 

На форму #Документа.РеализацияТоваровУслуг выносится новый реквизит формы #ПечФормаОтправлена, который не изменяет данные, и при редактировании этого реквизита на форме происходит запись или удаление записи в #РС.ЭР_ОбменПечатнымиФормами: 

#РС.ЭР_ОбменПечатнымиФормами.Период = ТекущаяДата(); 

#РС.ЭР_ОбменПечатнымиФормами.Документ = #РеализацияТоваровУслуг.Ссылка; 

#РС.ЭР_ОбменПечатнымиФормами.Отправлен = Истина: 

 

На форму #Документа.АктВыполненныхРабот выносится новый реквизит формы #ПечФормаОтправлена, который не изменяет данные, и при редактировании этого реквизита на форме происходит запись или удаление записи в #РС.ЭР_ОбменПечатнымиФормами: 

#РС.ЭР_ОбменПечатнымиФормами.Период = ТекущаяДата(); 

#РС.ЭР_ОбменПечатнымиФормами.Документ = #АктВыполненныхРабот.Ссылка; 

#РС.ЭР_ОбменПечатнымиФормами.Отправлен = Истина: 

 

!Разработчик добавляет в систему новый #Отчет.СостояниеВыполненияЗаказаКлиента и производит изменение в меню, выпадающем по кнопке $Отчеты: 

 

т.е. вместо отчета “Состояние выполнения” теперь должен строиться отчет “Состояние выполнения заказа клиента”. 

Отчет строиться аналогичным образом, как и отчет о состоянии выполнения (на тех же регистрах и ТЧ ЗаказКлиента.ЭтапыГрафикаОплаты), кроме выделенных колонок по планам и фактам на отгрузку: