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

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

image.png

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

image.png

image.png

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

image.png

image.png

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

image.png

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

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

image.png

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

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

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

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

image.png

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

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

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

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

22. В модуле объекта документа "Счет на оплату от поставщика" должна быть часть кода с пометкой "фм". 

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

RLS-шаблоны

1. В свойствах определяемого типа «Владелец значений ключей доступа» тип должен содержать определенные документы и справочники с пометкой «фм» и «тф». Конкретно: документ "Заявка по экспедиции" и справочник "Транспортное средство".

image.png

image.png

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

Конкретно: документ объект "Заявка по экспедиции"!!!!!

image.png

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

Конкретно: справочник объект "Транспортное средство"!!!!!!

image.png

4. В свойствах определяемого типа «Значение доступа» тип должен содержать определенные документы и справочники с пометкой «фм» и «тф». Конкретно: справочник "Транспортное средство".

image.png

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

Конкретно: справочник объект "Транспортное средство"!!!!!!!

image.png

6. В свойствах определяемого типа «Поле регистра ключей доступа к регистрам» тип должен содержать определенные документы и справочники с пометкой «фм» и «тф». Конкретно: справочник "Транспортное средство".

image.png

7.  В общем модуле "Управление доступом БП" должна быть часть кода с пометкой "фм".

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

8. В том же общем модуле "Управление доступом БП" должна быть часть кода с пометкой "фм".

Процедура ЗаполнитьВидыОграниченийПравОбъектовМетаданных(Описание) Экспорт

	Описание = "
	|Документ.фмЗаявкиПоЭкспедиции.Чтение.ТС     //фм разграничение ТС
	|Документ.фмЗаявкиПоЭкспедиции.Изменение.ТС //фм разграничение ТС    	
	|Справочник.тфТранспортноеСредство.Чтение.ТС     //фм разграничение ТС
	|Справочник.тфТранспортноеСредство.Изменение.ТС  //фм разграничение ТС 
	|РегистрНакопления.тфСтавкиСобственногоТранспорта.Чтение.ТС  //фм разграничение ТС 
	|Справочник.АвансовыйПлатежИностранцаПоНДФЛПрисоединенныеФайлы.Чтение.ГруппыФизическихЛиц
	|Справочник.АвансовыйПлатежИностранцаПоНДФЛПрисоединенныеФайлы.Чтение.Организации
    
    ***
    
КонецПроцедуры

 

Доработки по бухгалтерской части (исправление ошибок)

В справочнике "Банковские счета" - в формах "Форма списка" и "Форма выбора" - в динамическом списке - во вкладке Параметры необходимо указать тип "Банковские счета" у параметра "Основной банковский счет".

image.png