Обновление АВ 1.0 для ТМП
1. Зайти в папку "Автоверсант" - "Обновления", найти текстовые документы с названием, похожим на "Изменения".
В этих текстовых документах написаны изменения, которые нужно внести в конфигурацию.
2. Начать проверять и вводить изменения. В документе «Счет на оплату покупателю» должен быть реквизит «фмДокументОснование».
Информация для создания реквизита:
После каждого изменения обязательно сохраняться!!!
3. В этом же документе в разделе «Ввод на основании». В списке «Является основанием для…» должен быть документ «Счет на оплату покупателю», фмПодтверждениеОплаты и "фмПодтверждениеПолученияДокумента", а в списке "Вводится на основании..." должен быть документ "фмРеестрТранспортныхУслуг".
4. В этом же документе в модуле объекта должна быть часть кода с пометкой «фм».
Процедура ЗаполнитьПоДокументуОснованию(Основание)
***
// Заполним табличные части
Отбор = Новый Структура;
Отбор.Вставить("НомерВерсии", ДанныеОснования.НомерВерсии);
ТоварыВерсии = Основание.Товары.Выгрузить(Отбор);
Для Каждого СтрокаТовары Из ТоварыВерсии Цикл
НоваяСтрока = Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТовары);
КонецЦикла;
//ФМ{
ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.фмРеестрТранспортныхУслуг") Тогда
// Заполним реквизиты шапки по документу основанию.
ЗаполнениеДокументов.ЗаполнитьПоОснованию(ЭтотОбъект, Основание);
фмДокументОснования=Основание.ссылка;
если фмДокументОснования.услуги.количество()>0 тогда
ставкандс=фмДокументОснования.услуги.получить(0).ставкандс;
конецесли;
если основание.короткийсчет тогда
новаястрока=Товары.Добавить();
новаястрока.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию("Транспортно-зкспедиционные услуги");
новаястрока.Содержание="Транспортно-экспедиционные услуги по доставке груза согласно реестра №"+сокрлп(основание.номерреестра)+" от "+сокрлп(сред(основание.дата,1,10));
новаястрока.Количество=основание.услуги.количество();
новаястрока.Сумма=?(основание.суммавключаетндс,основание.суммадокумента,основание.услуги.итог("Сумма"));
новаястрока.СуммаНДС=основание.услуги.итог("СуммаНДС");
новаястрока.СтавкаНДС=ставкандс;
иначе
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Ссылка", Основание.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| АктОбОказанииПроизводственныхУслугУслуги.Номенклатура,
| АктОбОказанииПроизводственныхУслугУслуги.СтавкаНДС,
| АктОбОказанииПроизводственныхУслугУслуги.Цена,
| АктОбОказанииПроизводственныхУслугУслуги.Количество КАК Количество,
| АктОбОказанииПроизводственныхУслугУслуги.Сумма КАК Сумма,
| АктОбОказанииПроизводственныхУслугУслуги.СуммаНДС КАК СуммаНДС,
| АктОбОказанииПроизводственныхУслугУслуги.Содержание
|ИЗ
| Документ.фмРеестрТранспортныхУслуг.Услуги КАК АктОбОказанииПроизводственныхУслугУслуги
|ГДЕ
| АктОбОказанииПроизводственныхУслугУслуги.Ссылка = &Ссылка";
ВыборкаУслуг = Запрос.Выполнить().Выбрать();
Пока ВыборкаУслуг.Следующий() Цикл
НоваяСтрока = Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаУслуг);
КонецЦикла;
конецесли;
//ФМ}
КонецЕсли;
КонецПроцедуры
5. В критерии отбора «Связанные документы» во вкладке «Данные» тип должен содержать определенные документы с пометкой «фм», «тф» и «ав», а в свойствах критерия отбора в составе должны быть помечены почти все реквизиты и табличные части документов с пометкой «тф» и «фм» (не критично, если все) и реквизиты документов «Счет на оплату покупателю» и «Счет на оплату поставщика».
Если нет какого-то реквизита в составе - необходимо проверить тип реквизита. Ссылочный тип реквизита должен быть включен во вкладке данные Связанных документов.
Тип:
Состав:
6. В свойствах определяемого типа «Объект с дополнительными командами» тип параметра команды должен содержать определенные документы с пометкой «фм» и «тф».
7. Сохранить изменения.
8. В свойствах общей команды «Показать движения документа» тип параметра команды должен содержать определенные документы с пометкой «фм» и «тф».
9. В свойствах общей команды «Связанные документы» тип параметра команды должен содержать определенные документы с пометкой «фм» и «тф».
10. В свойствах подписки на события «Перед записью документа проверка номера по дате организации подразделению» источник должен содержать "фмРеестрТранспортныхУслуг".
11. В свойствах подписки на события «Установить префикс информационной базы организации подразделения номеру документа» источник должен содержать "фмРеестрТранспортныхУслуг" и "фмПретензии".
12. В свойствах подписки на события «Зарегистрировать данные первичных документов» источник должен содержать "фмПретензии".
13. Проверить "Полные права". Должна стоять галочка на Удалении, но должны быть сняты галочки на Интерактивном удалении.
14. В табличной части «По данным организации» документа «Акт сверки взаиморасчетов» есть реквизит «Документ». В свойствах этого реквизита в типе должен быть указан документ «Претензии».
15. В регистре сведений «Данные первичных документов» в свойствах измерения «Документ» в типах должен быть указан документ «Претензии».
16. В свойствах подписки на события «Перед записью документа проверка номера по дате организации подразделению» обработчик должен содержать часть кода с пометкой "фм".
Процедура ПроверитьНомерДокументаПоДатеОрганизацииПодразделению(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если Источник.ОбменДанными.Загрузка Тогда
Возврат;
ИначеЕсли Источник.ЭтоНовый() Тогда
//ФМ
если типзнч(источник)=тип("ДокументОбъект.СчетНаОплатуПокупателю") тогда
Если Источник.Дата > Константы.тфДатаНачалаФормированияПроводокДвиженияТС.Получить() Тогда
источник.номер=сокрлп(источник.фмДокументОснования.Номер);
КонецЕсли;
иначеесли типзнч(источник)=тип("ДокументОбъект.РеализацияТоваровУслуг") тогда
Если Источник.Дата > Константы.тфДатаНачалаФормированияПроводокДвиженияТС.Получить() Тогда
источник.номер=сокрлп(источник.СчетНаОплатуПокупателю.Номер);
КонецЕсли;
конецесли;
//ФМ--
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ИмяОрганизации = ПрефиксацияОбъектовСобытия.ИмяРеквизитаОрганизация(Источник.Метаданные());
ИмяПодразделения = ИмяРеквизитаПодразделение(Источник.Ссылка);
СтарыеРеквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Источник.Ссылка,
"Дата" + "," + ИмяОрганизации + "," + ИмяПодразделения);
СтарыйПрефикс = ПрефиксОрганизацииПодразделения(СтарыеРеквизиты[ИмяОрганизации], СтарыеРеквизиты[ИмяПодразделения]);
НовыйПрефикс = ПрефиксОрганизацииПодразделения(Источник[ИмяОрганизации], Источник[ИмяПодразделения]);
Если НовыйПрефикс <> СтарыйПрефикс
ИЛИ НЕ ПрефиксацияОбъектовСлужебный.ДатыОбъектаОдногоПериода(
СтарыеРеквизиты.Дата,
Источник.Дата,
Источник.Ссылка) Тогда
Источник.Номер = "";
КонецЕсли;
КонецПроцедуры
17. В свойствах подписки на события «Перед записью документа проверка номера по дате и организации» обработчик должен содержать часть кода с пометкой "фм".
Процедура ПроверитьНомерОбъектаПоДатеИОрганизации(Объект)
//ФМ
если Объект.ЭтоНовый() и типзнч(Объект)=тип("ДокументОбъект.СчетФактураВыданный") тогда
если типзнч(объект.ДокументОснование) = тип("ДокументСсылка.РеализацияТоваровУслуг") тогда
Объект.номер=сокрлп(объект.ДокументОснование.Номер);
конецесли;
//если Объект.документыоснования.количество()=1 тогда
для каждого текстрока из Объект.документыоснования цикл
если типзнч(текстрока.документоснование)=тип("ДокументСсылка.РеализацияТоваровУслуг") тогда
Объект.номер=сокрлп(текстрока.ДокументОснование.Номер);
конецесли;
конеццикла;
//конецесли;
конецесли;
//ФМ--
Если Объект.ОбменДанными.Загрузка Или Объект.ЭтоНовый() Тогда
Возврат;
КонецЕсли;
Если ПрефиксацияОбъектовСлужебный.ДатаИлиОрганизацияОбъектаИзменена(Объект.Ссылка, Объект.Дата,
Объект[ИмяРеквизитаОрганизация(Объект.Метаданные())]) Тогда
Объект.Номер = "";
КонецЕсли;
КонецПроцедуры
18. Общий модуль «Префиксация объектов БП события» должен содержать часть кода с пометкой "фм".
Процедура ПроверитьНомерДокументаПоДатеОрганизацииПодразделению(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если Источник.ОбменДанными.Загрузка Тогда
Возврат;
ИначеЕсли Источник.ЭтоНовый() Тогда
//ФМ
если типзнч(источник)=тип("ДокументОбъект.СчетНаОплатуПокупателю") тогда
Если Источник.Дата > Константы.тфДатаНачалаФормированияПроводокДвиженияТС.Получить() Тогда
источник.номер=сокрлп(источник.фмДокументОснования.Номер);
КонецЕсли;
иначеесли типзнч(источник)=тип("ДокументОбъект.РеализацияТоваровУслуг") тогда
Если Источник.Дата > Константы.тфДатаНачалаФормированияПроводокДвиженияТС.Получить() Тогда
источник.номер=сокрлп(источник.СчетНаОплатуПокупателю.Номер);
КонецЕсли;
конецесли;
//ФМ--
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ИмяОрганизации = ПрефиксацияОбъектовСобытия.ИмяРеквизитаОрганизация(Источник.Метаданные());
ИмяПодразделения = ИмяРеквизитаПодразделение(Источник.Ссылка);
СтарыеРеквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Источник.Ссылка,
"Дата" + "," + ИмяОрганизации + "," + ИмяПодразделения);
СтарыйПрефикс = ПрефиксОрганизацииПодразделения(СтарыеРеквизиты[ИмяОрганизации], СтарыеРеквизиты[ИмяПодразделения]);
НовыйПрефикс = ПрефиксОрганизацииПодразделения(Источник[ИмяОрганизации], Источник[ИмяПодразделения]);
Если НовыйПрефикс <> СтарыйПрефикс
ИЛИ НЕ ПрефиксацияОбъектовСлужебный.ДатыОбъектаОдногоПериода(
СтарыеРеквизиты.Дата,
Источник.Дата,
Источник.Ссылка) Тогда
Источник.Номер = "";
КонецЕсли;
КонецПроцедуры
19. Общий модуль «Префиксация объектов события» должен содержать часть кода с пометкой "фм".
Процедура ПроверитьНомерОбъектаПоДатеИОрганизации(Объект)
//ФМ
если Объект.ЭтоНовый() и типзнч(Объект)=тип("ДокументОбъект.СчетФактураВыданный") тогда
если типзнч(объект.ДокументОснование) = тип("ДокументСсылка.РеализацияТоваровУслуг") тогда
Объект.номер=сокрлп(объект.ДокументОснование.Номер);
конецесли;
//если Объект.документыоснования.количество()=1 тогда
для каждого текстрока из Объект.документыоснования цикл
если типзнч(текстрока.документоснование)=тип("ДокументСсылка.РеализацияТоваровУслуг") тогда
Объект.номер=сокрлп(текстрока.ДокументОснование.Номер);
конецесли;
конеццикла;
//конецесли;
конецесли;
//ФМ--
Если Объект.ОбменДанными.Загрузка Или Объект.ЭтоНовый() Тогда
Возврат;
КонецЕсли;
Если ПрефиксацияОбъектовСлужебный.ДатаИлиОрганизацияОбъектаИзменена(Объект.Ссылка, Объект.Дата,
Объект[ИмяРеквизитаОрганизация(Объект.Метаданные())]) Тогда
Объект.Номер = "";
КонецЕсли;
КонецПроцедуры
20. Запрет на редактирование в общем модуле «Даты запрета изменения БП» - часть кода с пометкой "фм".
Процедура ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения(Знач ИсточникиДанных) Экспорт
// Данные(Таблица, ПолеДаты, Раздел, ПолеОбъекта)
//ФМ
ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.фмРеестрТранспортныхУслуг", "Дата" , "БухгалтерскийУчет", "Организация");
//ФМ--
ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.АвансовыйОтчет" , "Дата" , "БухгалтерскийУчет", "Организация");
ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.АктОбОказанииПроизводственныхУслуг" , "Дата" , "БухгалтерскийУчет", "Организация");
ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.АктСверкиВзаиморасчетов"
***
КонецПроцедуры
21. В подписке на события «Проверить дату запрета изменения перед записью документа БП» в источнике должен быть добавлен "фмРеестрТранспортныхУслуг".
22. В общем модуле «Управление печатью переопределяемый» должна быть часть кода с пометкой "фм".
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
***
СписокОбъектов.Добавить(Документы.ПередачаЗадолженностиНаФакторинг);
СписокОбъектов.Добавить(Документы.НачислениеДивидендов);
СписокОбъектов.Добавить(Документы.фмЗаявкиПоЭкспедиции); //ФМ
СписокОбъектов.Добавить(Документы.фмРеестрТранспортныхУслуг); //ФМ
СписокОбъектов.Добавить(Документы.тфПутевойЛист); //ФМ
СписокОбъектов.Добавить(Документы.тфСнятиеУстановкаСоставляющихТС); //ФМ
СписокОбъектов.Добавить(Документы.тфЗаказНаряд); //ФМ
СписокОбъектов.Добавить(Документы.тфСнятиеУстановкаСоставляющихТС); //ФМ
СписокОбъектов.Добавить(ЖурналыДокументов.Деньги);
СписокОбъектов.Добавить(ЖурналыДокументов.ДенежныеДокументы);
СписокОбъектов.Добавить(ЖурналыДокументов.ДокументыПоНМА);
СписокОбъектов.Добавить(ЖурналыДокументов.ДокументыПоОС);
СписокОбъектов.Добавить(ЖурналыДокументов.Документы);
СписокОбъектов.Добавить(ЖурналыДокументов.ЖурналОпераций);
СписокОбъектов.Добавить(ЖурналыДокументов.ПроизводственныеДокументы);
СписокОбъектов.Добавить(ЖурналыДокументов.СкладскиеДокументы);
СписокОбъектов.Добавить(ЖурналыДокументов.ВыплатаЗарплаты);
СписокОбъектов.Добавить(ПланыСчетов.Хозрасчетный);
УчетОбособленныхПодразделений.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
УчетОбесцененияАктивов.НастроитьКомандыПечати(СписокОбъектов);
ЗарплатаКадры.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
РегламентированнаяОтчетность.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
ЭлектронноеВзаимодействие.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
ПрослеживаемостьБРУ.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
УчетПроцентовПоОбязательствам.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
// ИнтеграцияИСМП
СписокОбъектов.Добавить(Документы.МаркировкаТоваровИСМП);
СписокОбъектов.Добавить(Документы.ВыводИзОборотаИСМП);
СписокОбъектов.Добавить(Документы.ЗаказНаЭмиссиюКодовМаркировкиСУЗ);
СписокОбъектов.Добавить(Документы.ПеремаркировкаТоваровИСМП);
СписокОбъектов.Добавить(Документы.СписаниеКодовМаркировкиИСМП);
КонецПроцедуры
23. В свойствах критерия отбора "Связанные документы" в составе типа должна стоять галочка на документе "Отчет комитенту о продажах".
Состав документа "Отчет комитенту о продажах"
24. В документе «Счет на оплату поставщика» должен быть реквизит «фмСчетОтПеревозчика».
Информация для создания реквизита:
25. В этом же документе в разделе «Ввод на основании». В списке «Вводится на основании…» должен быть документ «Счет на оплату от перевозчика».
26. В этом же документе в модуле объекта должна быть часть кода с пометкой «фм».
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
СуммаВключаетНДС = Истина;
ЗаполнениеДокументов.Заполнить(ЭтотОбъект, ДанныеЗаполнения);
//ФМ
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.фмСчетНаОплатуОтПеревозчика") Тогда
фмСчетОтПеревозчика = ДанныеЗаполнения.ссылка;
Организация = ДанныеЗаполнения.Организация;
Контрагент = ДанныеЗаполнения.Контрагент;
ДоговорКонтрагента = ДанныеЗаполнения.Договор;
НомерВходящегоДокумента = ДанныеЗаполнения.НомерСчета;
ДатаВходящегоДокумента = ДанныеЗаполнения.ДатаСчета;
для каждого текстрока из ДанныеЗаполнения.СписокЗаявок цикл
нс = Товары.Добавить();
Если текстрока.Заявка.Услуги.Количество() > 0 Тогда
нс.Номенклатура = текстрока.Заявка.Услуги.Получить(0).Номенклатура;
КонецЕсли;
нс.Содержание = фмОбщий.ПолучитьСодержаниеУслугиЗаявки(текстрока.заявка, нс.Номенклатура);
нс.Сумма = текстрока.сумма;
//+гсв с 01.01.19 изменилась ставка НДС
Если ДанныеЗаполнения.Дата < дата('20190101000000')тогда
нс.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
нс.СуммаНДС = УчетНДСКлиентСервер.РассчитатьСуммуНДС(нс.сумма, СуммаВключаетНДС, 18);
иначе
нс.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
нс.СуммаНДС = УчетНДСКлиентСервер.РассчитатьСуммуНДС(нс.сумма, СуммаВключаетНДС, 20);
КонецЕсли;
//-гсв
конеццикла;
КонецЕсли;
//ФМ--
КонецПроцедуры
27. В документе "Реализация товаров услуг" в формах «Форма документа (услуги)» и «Форма документа (общая)» - вкладка «Услуги» - проверить наличия элемента «Логист». Если его нет, то раскрыть «Объект» – найти таблицу «Услуги» – раскрыть таблицу – найти реквизит «Логист» и перетащить его в левую часть, как на рисунке.
28. Проверить разрешение на просмотр в роли «Транспорт» для общей команды «Дополнительные печатные формы объекта»
29. Проверить справочники и документы в роли «Экспедиция» на пунктах «Интерактивная пометка на удаление» и «Интерактивное снятие пометки удаления» галочки быть не должно
30. Проверить справочники и документы в роли «Автоверсант: удаление заявки по перевозкам» на пунктах «Интерактивная пометка на удаление» и «Интерактивное снятие пометки удаления» должна быть галочка
31. Проверить свойства общей команды «Дополнительные печатные формы объекта». В типе параметра команды должна стоять галочка на документе «Заказ-наряд».
No Comments