Skip to main content

Обновление АВ 1.0 для ТМП

1. Зайти в папку "Автоверсант" - "Обновления", найти текстовые документы с названием, похожим на "Изменения".

В этих текстовых документах написаны изменения, которые нужно внести в конфигурацию.

image.png

2. Начать проверять и  вводить изменения. В документе «Счет на оплату покупателю» должен быть реквизит «фмДокументОснование».

image.png

Информация для создания реквизита:

image.png

После каждого изменения обязательно сохраняться!!!

3. В этом же документе в разделе «Ввод на основании».  В списке «Является основанием для…» должен быть документ «Счет на оплату покупателю», фмПодтверждениеОплаты и "фмПодтверждениеПолученияДокумента", а в списке "Вводится на основании..." должен быть документ "фмРеестрТранспортныхУслуг".

image.png

4. В этом же документе в модуле объекта должна быть часть кода с пометкой «фм».

Процедура ЗаполнитьПоДокументуОснованию(Основание)
       
       ***
		// Заполним табличные части
		Отбор = Новый Структура;
		Отбор.Вставить("НомерВерсии", ДанныеОснования.НомерВерсии);
		
		ТоварыВерсии = Основание.Товары.Выгрузить(Отбор);
		
		Для Каждого СтрокаТовары Из ТоварыВерсии Цикл
			НоваяСтрока = Товары.Добавить();
			ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТовары);
		КонецЦикла;
        
    //ФМ{
	ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.фмРеестрТранспортныхУслуг") Тогда

		// Заполним реквизиты шапки по документу основанию.
		ЗаполнениеДокументов.ЗаполнитьПоОснованию(ЭтотОбъект, Основание);
        фмДокументОснования=Основание.ссылка;
		если фмДокументОснования.услуги.количество()>0 тогда
			ставкандс=фмДокументОснования.услуги.получить(0).ставкандс;
		конецесли;
		если основание.короткийсчет тогда
			новаястрока=Товары.Добавить();
			новаястрока.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию("Транспортно-зкспедиционные услуги");
			новаястрока.Содержание="Транспортно-экспедиционные услуги по доставке груза согласно реестра №"+сокрлп(основание.номерреестра)+" от "+сокрлп(сред(основание.дата,1,10));
			новаястрока.Количество=основание.услуги.количество();
			новаястрока.Сумма=?(основание.суммавключаетндс,основание.суммадокумента,основание.услуги.итог("Сумма"));
			новаястрока.СуммаНДС=основание.услуги.итог("СуммаНДС");
			новаястрока.СтавкаНДС=ставкандс;
		иначе
			
			Запрос = Новый Запрос();
			Запрос.УстановитьПараметр("Ссылка", Основание.Ссылка);
			
			Запрос.Текст =
			"ВЫБРАТЬ
			|	АктОбОказанииПроизводственныхУслугУслуги.Номенклатура,
			|	АктОбОказанииПроизводственныхУслугУслуги.СтавкаНДС,
			|	АктОбОказанииПроизводственныхУслугУслуги.Цена,
			|	АктОбОказанииПроизводственныхУслугУслуги.Количество КАК Количество,
			|	АктОбОказанииПроизводственныхУслугУслуги.Сумма КАК Сумма,
			|	АктОбОказанииПроизводственныхУслугУслуги.СуммаНДС КАК СуммаНДС,
			|	АктОбОказанииПроизводственныхУслугУслуги.Содержание
			|ИЗ
			|	Документ.фмРеестрТранспортныхУслуг.Услуги КАК АктОбОказанииПроизводственныхУслугУслуги
			|ГДЕ
			|	АктОбОказанииПроизводственныхУслугУслуги.Ссылка = &Ссылка";
			ВыборкаУслуг = Запрос.Выполнить().Выбрать();
			
			Пока ВыборкаУслуг.Следующий() Цикл
				НоваяСтрока = Товары.Добавить();
				ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаУслуг);
			КонецЦикла;
		конецесли;
	//ФМ}	
    
	КонецЕсли;
    
КонецПроцедуры

5. В критерии отбора «Связанные документы» во вкладке «Данные» тип должен содержать определенные документы с пометкой «фм», «тф» и «ав», а в свойствах критерия отбора в составе должны быть помечены почти все реквизиты и табличные части документов с пометкой «тф» и «фм» (не критично, если все) и реквизиты документов «Счет на оплату покупателю» и «Счет на оплату поставщика».

Если нет какого-то реквизита в составе - необходимо проверить тип реквизита. Ссылочный тип реквизита должен быть включен во вкладке данные Связанных документов.

Тип:

image.png

image.png

Состав:

image.png

image.png

image.png

image.png

image.png

image.png

6. В свойствах определяемого типа «Объект с дополнительными командами» тип параметра команды должен содержать определенные документы с пометкой «фм» и «тф».

image.png

image.png

7.  Сохранить изменения.

image.png

8. В свойствах общей команды «Показать движения документа» тип параметра команды должен содержать определенные документы с пометкой «фм» и «тф».

image.png

image.png

9. В свойствах общей команды «Связанные документы» тип параметра команды должен содержать определенные документы с пометкой «фм» и «тф».

image.png

image.png

10. В свойствах подписки на события «Перед записью документа проверка номера по дате организации подразделению» источник должен содержать "фмРеестрТранспортныхУслуг".

image.png

11. В свойствах подписки на события «Установить префикс информационной базы организации подразделения номеру документа» источник должен содержать "фмРеестрТранспортныхУслуг" и "фмПретензии".

image.png

12. В свойствах подписки на события «Зарегистрировать данные первичных документов» источник должен содержать "фмПретензии".

image.png

13. Проверить "Полные права". Должна стоять галочка на Удалении, но должны быть сняты галочки на Интерактивном удалении.

image.png

14. В табличной части «По данным организации» документа «Акт сверки взаиморасчетов» есть реквизит «Документ». В свойствах этого реквизита в типе должен быть указан документ «Претензии».

image.png

image.png

15. В регистре сведений «Данные первичных документов» в свойствах измерения «Документ» в типах должен быть указан документ «Претензии».

image.png

image.png

16. В свойствах подписки на события «Перед записью документа проверка номера по дате организации подразделению» обработчик должен содержать часть кода с пометкой "фм".

image.png

Процедура ПроверитьНомерДокументаПоДатеОрганизацииПодразделению(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
	
	Если Источник.ОбменДанными.Загрузка Тогда
		Возврат;
	ИначеЕсли Источник.ЭтоНовый() Тогда
		//ФМ
		если типзнч(источник)=тип("ДокументОбъект.СчетНаОплатуПокупателю") тогда
			Если Источник.Дата > Константы.тфДатаНачалаФормированияПроводокДвиженияТС.Получить() Тогда
				источник.номер=сокрлп(источник.фмДокументОснования.Номер);
			КонецЕсли;
		иначеесли типзнч(источник)=тип("ДокументОбъект.РеализацияТоваровУслуг") тогда
			Если Источник.Дата > Константы.тфДатаНачалаФормированияПроводокДвиженияТС.Получить() Тогда
				источник.номер=сокрлп(источник.СчетНаОплатуПокупателю.Номер);
			КонецЕсли;
		конецесли;
		//ФМ--
		Возврат;
	КонецЕсли;
	
	УстановитьПривилегированныйРежим(Истина);
	
	ИмяОрганизации   = ПрефиксацияОбъектовСобытия.ИмяРеквизитаОрганизация(Источник.Метаданные());
	ИмяПодразделения = ИмяРеквизитаПодразделение(Источник.Ссылка);
	
	СтарыеРеквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Источник.Ссылка, 
		"Дата" + "," + ИмяОрганизации + "," + ИмяПодразделения);
		
	СтарыйПрефикс = ПрефиксОрганизацииПодразделения(СтарыеРеквизиты[ИмяОрганизации], СтарыеРеквизиты[ИмяПодразделения]);
	НовыйПрефикс  = ПрефиксОрганизацииПодразделения(Источник[ИмяОрганизации], Источник[ИмяПодразделения]);
		
	Если НовыйПрефикс <> СтарыйПрефикс 
		ИЛИ НЕ ПрефиксацияОбъектовСлужебный.ДатыОбъектаОдногоПериода(
			СтарыеРеквизиты.Дата, 
			Источник.Дата, 
			Источник.Ссылка) Тогда
			
		Источник.Номер = "";
		
	КонецЕсли;
	
КонецПроцедуры

17. В свойствах подписки на события «Перед записью документа проверка номера по дате и организации» обработчик должен содержать часть кода с пометкой "фм".

image.png

Процедура ПроверитьНомерОбъектаПоДатеИОрганизации(Объект)
	
	//ФМ
	если Объект.ЭтоНовый() и типзнч(Объект)=тип("ДокументОбъект.СчетФактураВыданный") тогда
		если типзнч(объект.ДокументОснование) = тип("ДокументСсылка.РеализацияТоваровУслуг") тогда
			Объект.номер=сокрлп(объект.ДокументОснование.Номер);
		конецесли;
		//если Объект.документыоснования.количество()=1 тогда
		для каждого текстрока из Объект.документыоснования цикл
			если типзнч(текстрока.документоснование)=тип("ДокументСсылка.РеализацияТоваровУслуг") тогда
				Объект.номер=сокрлп(текстрока.ДокументОснование.Номер);
			конецесли;
		конеццикла;
		//конецесли;
	конецесли;
	//ФМ--
	
	Если Объект.ОбменДанными.Загрузка Или Объект.ЭтоНовый() Тогда
		Возврат;
	КонецЕсли;
	
	Если ПрефиксацияОбъектовСлужебный.ДатаИлиОрганизацияОбъектаИзменена(Объект.Ссылка, Объект.Дата,
		Объект[ИмяРеквизитаОрганизация(Объект.Метаданные())]) Тогда
		
		Объект.Номер = "";
		
	КонецЕсли;
	
КонецПроцедуры

18. Общий модуль «Префиксация объектов БП события» должен содержать часть кода с пометкой "фм".

Процедура ПроверитьНомерДокументаПоДатеОрганизацииПодразделению(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
	
	Если Источник.ОбменДанными.Загрузка Тогда
		Возврат;
	ИначеЕсли Источник.ЭтоНовый() Тогда
		//ФМ
		если типзнч(источник)=тип("ДокументОбъект.СчетНаОплатуПокупателю") тогда
			Если Источник.Дата > Константы.тфДатаНачалаФормированияПроводокДвиженияТС.Получить() Тогда
				источник.номер=сокрлп(источник.фмДокументОснования.Номер);
			КонецЕсли;
		иначеесли типзнч(источник)=тип("ДокументОбъект.РеализацияТоваровУслуг") тогда
			Если Источник.Дата > Константы.тфДатаНачалаФормированияПроводокДвиженияТС.Получить() Тогда
				источник.номер=сокрлп(источник.СчетНаОплатуПокупателю.Номер);
			КонецЕсли;
		конецесли;
		//ФМ--
		Возврат;
	КонецЕсли;
	
	УстановитьПривилегированныйРежим(Истина);
	
	ИмяОрганизации   = ПрефиксацияОбъектовСобытия.ИмяРеквизитаОрганизация(Источник.Метаданные());
	ИмяПодразделения = ИмяРеквизитаПодразделение(Источник.Ссылка);
	
	СтарыеРеквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Источник.Ссылка, 
		"Дата" + "," + ИмяОрганизации + "," + ИмяПодразделения);
		
	СтарыйПрефикс = ПрефиксОрганизацииПодразделения(СтарыеРеквизиты[ИмяОрганизации], СтарыеРеквизиты[ИмяПодразделения]);
	НовыйПрефикс  = ПрефиксОрганизацииПодразделения(Источник[ИмяОрганизации], Источник[ИмяПодразделения]);
		
	Если НовыйПрефикс <> СтарыйПрефикс 
		ИЛИ НЕ ПрефиксацияОбъектовСлужебный.ДатыОбъектаОдногоПериода(
			СтарыеРеквизиты.Дата, 
			Источник.Дата, 
			Источник.Ссылка) Тогда
			
		Источник.Номер = "";
		
	КонецЕсли;
	
КонецПроцедуры

19. Общий модуль «Префиксация объектов события» должен содержать часть кода с пометкой "фм".

Процедура ПроверитьНомерОбъектаПоДатеИОрганизации(Объект)
	
	//ФМ
	если Объект.ЭтоНовый() и типзнч(Объект)=тип("ДокументОбъект.СчетФактураВыданный") тогда
		если типзнч(объект.ДокументОснование) = тип("ДокументСсылка.РеализацияТоваровУслуг") тогда
			Объект.номер=сокрлп(объект.ДокументОснование.Номер);
		конецесли;
		//если Объект.документыоснования.количество()=1 тогда
		для каждого текстрока из Объект.документыоснования цикл
			если типзнч(текстрока.документоснование)=тип("ДокументСсылка.РеализацияТоваровУслуг") тогда
				Объект.номер=сокрлп(текстрока.ДокументОснование.Номер);
			конецесли;
		конеццикла;
		//конецесли;
	конецесли;
	//ФМ--
	
	Если Объект.ОбменДанными.Загрузка Или Объект.ЭтоНовый() Тогда
		Возврат;
	КонецЕсли;
	
	Если ПрефиксацияОбъектовСлужебный.ДатаИлиОрганизацияОбъектаИзменена(Объект.Ссылка, Объект.Дата,
		Объект[ИмяРеквизитаОрганизация(Объект.Метаданные())]) Тогда
		
		Объект.Номер = "";
		
	КонецЕсли;
	
КонецПроцедуры

20. Запрет на редактирование в общем модуле «Даты запрета изменения БП» - часть кода с пометкой "фм".

Процедура ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения(Знач ИсточникиДанных) Экспорт
	
	// Данные(Таблица, ПолеДаты, Раздел, ПолеОбъекта)
	
	//ФМ
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.фмРеестрТранспортныхУслуг", "Дата" , "БухгалтерскийУчет", "Организация");
	//ФМ--
	
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.АвансовыйОтчет"                                                  , "Дата" , "БухгалтерскийУчет", "Организация");
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.АктОбОказанииПроизводственныхУслуг"                              , "Дата" , "БухгалтерскийУчет", "Организация");
	ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.АктСверкиВзаиморасчетов"     
    
    ***
 КонецПроцедуры

21. В подписке на события «Проверить дату запрета изменения перед записью документа БП» в источнике должен быть добавлен "фмРеестрТранспортныхУслуг".

image.png

22. В общем модуле «Управление печатью переопределяемый» должна быть часть кода с пометкой "фм".

Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт

    ***
    
	СписокОбъектов.Добавить(Документы.ПередачаЗадолженностиНаФакторинг);
	СписокОбъектов.Добавить(Документы.НачислениеДивидендов);
	
	СписокОбъектов.Добавить(Документы.фмЗаявкиПоЭкспедиции); //ФМ
	СписокОбъектов.Добавить(Документы.фмРеестрТранспортныхУслуг); //ФМ
	СписокОбъектов.Добавить(Документы.тфПутевойЛист); //ФМ
	СписокОбъектов.Добавить(Документы.тфСнятиеУстановкаСоставляющихТС); //ФМ
    СписокОбъектов.Добавить(Документы.тфЗаказНаряд); //ФМ
	СписокОбъектов.Добавить(Документы.тфСнятиеУстановкаСоставляющихТС); //ФМ
	
	СписокОбъектов.Добавить(ЖурналыДокументов.Деньги);
	СписокОбъектов.Добавить(ЖурналыДокументов.ДенежныеДокументы);
	СписокОбъектов.Добавить(ЖурналыДокументов.ДокументыПоНМА);
	СписокОбъектов.Добавить(ЖурналыДокументов.ДокументыПоОС);
	СписокОбъектов.Добавить(ЖурналыДокументов.Документы);
	СписокОбъектов.Добавить(ЖурналыДокументов.ЖурналОпераций);
	СписокОбъектов.Добавить(ЖурналыДокументов.ПроизводственныеДокументы);
	СписокОбъектов.Добавить(ЖурналыДокументов.СкладскиеДокументы);
	СписокОбъектов.Добавить(ЖурналыДокументов.ВыплатаЗарплаты);
	
	СписокОбъектов.Добавить(ПланыСчетов.Хозрасчетный);
	
	УчетОбособленныхПодразделений.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
	УчетОбесцененияАктивов.НастроитьКомандыПечати(СписокОбъектов);
	
	ЗарплатаКадры.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
	
	РегламентированнаяОтчетность.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
	
	ЭлектронноеВзаимодействие.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
	
	ПрослеживаемостьБРУ.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
	
	УчетПроцентовПоОбязательствам.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
	
	// ИнтеграцияИСМП
	СписокОбъектов.Добавить(Документы.МаркировкаТоваровИСМП);
	СписокОбъектов.Добавить(Документы.ВыводИзОборотаИСМП);
	СписокОбъектов.Добавить(Документы.ЗаказНаЭмиссиюКодовМаркировкиСУЗ);
	СписокОбъектов.Добавить(Документы.ПеремаркировкаТоваровИСМП);
	СписокОбъектов.Добавить(Документы.СписаниеКодовМаркировкиИСМП);
	
КонецПроцедуры

23.  В свойствах критерия отбора "Связанные документы" в составе типа должна стоять галочка на документе "Отчет комитенту о продажах".

image.png

Состав документа "Отчет комитенту о продажах"

image.png

24.  В документе «Счет на оплату поставщика» должен быть реквизит «фмСчетОтПеревозчика».

image.png

Информация для создания реквизита:

image.png

25. В этом же документе в разделе «Ввод на основании».  В списке «Вводится на основании…» должен быть документ «Счет на оплату от перевозчика».

image.png

26. В этом же документе в модуле объекта должна быть часть кода с пометкой «фм».

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	
	СуммаВключаетНДС = Истина;
	
	ЗаполнениеДокументов.Заполнить(ЭтотОбъект, ДанныеЗаполнения);
	//ФМ
	Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.фмСчетНаОплатуОтПеревозчика") Тогда

		фмСчетОтПеревозчика = ДанныеЗаполнения.ссылка;
		Организация = ДанныеЗаполнения.Организация;
		Контрагент = ДанныеЗаполнения.Контрагент;
		ДоговорКонтрагента = ДанныеЗаполнения.Договор;
		НомерВходящегоДокумента = ДанныеЗаполнения.НомерСчета;
		ДатаВходящегоДокумента = ДанныеЗаполнения.ДатаСчета;
		для каждого текстрока из ДанныеЗаполнения.СписокЗаявок цикл
			нс = Товары.Добавить();
			Если текстрока.Заявка.Услуги.Количество() > 0 Тогда
				нс.Номенклатура = текстрока.Заявка.Услуги.Получить(0).Номенклатура;
			КонецЕсли;
			нс.Содержание = фмОбщий.ПолучитьСодержаниеУслугиЗаявки(текстрока.заявка, нс.Номенклатура);
			нс.Сумма = текстрока.сумма;
			//+гсв с 01.01.19 изменилась ставка НДС
			Если ДанныеЗаполнения.Дата <  дата('20190101000000')тогда
				нс.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
				нс.СуммаНДС = УчетНДСКлиентСервер.РассчитатьСуммуНДС(нс.сумма, СуммаВключаетНДС, 18);
			иначе
				нс.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
				нс.СуммаНДС = УчетНДСКлиентСервер.РассчитатьСуммуНДС(нс.сумма, СуммаВключаетНДС, 20);
			КонецЕсли;
			//-гсв
		конеццикла; 
	КонецЕсли;
	//ФМ--
КонецПроцедуры

27. В документе "Реализация товаров услуг" в формах «Форма документа (услуги)» и «Форма документа (общая)» - вкладка «Услуги» - проверить наличия элемента «Логист». Если его нет, то раскрыть «Объект» – найти таблицу «Услуги» – раскрыть таблицу – найти реквизит «Логист» и перетащить его в левую часть, как на рисунке.

image.png

image.png

28. Проверить разрешение на просмотр в роли «Транспорт» для общей команды «Дополнительные печатные формы объекта»

image.png

29. Проверить справочники и документы в роли «Экспедиция» на пунктах «Интерактивная пометка на удаление» и «Интерактивное снятие пометки удаления» галочки быть не должно

image.png

30. Проверить справочники и документы в роли «Автоверсант: удаление заявки по перевозкам» на пунктах «Интерактивная пометка на удаление» и «Интерактивное снятие пометки удаления» должна быть галочка

image.png

31. Проверить свойства общей команды «Дополнительные печатные формы объекта». В типе параметра команды должна стоять галочка на документе «Заказ-наряд».

image.png

image.png