Skip to main content

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

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

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

image.png

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

image.png

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

image.png

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

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

image.png

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

Процедура ЗаполнитьПоДокументуОснованию(Основание)

	***
		
		Пока Выборка.Следующий() Цикл
			НоваяСтрока = Товары.Добавить();
			НоваяСтрока.Содержание = РаботаСНоменклатуройКлиентСерверБП.СодержаниеУслуги(
				СтрШаблон(НСтр("ru = 'Арендная плата (%1)'"), Выборка.Содержание),
				Перечисления.Периодичность.Месяц,
				ЭтотОбъект.Дата);
			НоваяСтрока.Количество = Выборка.Количество;
			НоваяСтрока.СтавкаНДС = СтавкаНДС;
		КонецЦикла;
		
	ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.КоммерческоеПредложение") Тогда
		// Заполним реквизиты шапки по документу основанию.
		ЗаполнениеДокументов.ЗаполнитьПоОснованию(ЭтотОбъект, Основание);
		
		РеквизитыКЗаполнению = "ДополнительныеУсловия,СуммаСкидки,НомерВерсии";
		ДанныеОснования = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Основание, РеквизитыКЗаполнению);
		ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеОснования);
		
		// Заполним табличные части
		Отбор = Новый Структура;
		Отбор.Вставить("НомерВерсии", ДанныеОснования.НомерВерсии);
		
		ТоварыВерсии = Основание.Товары.Выгрузить(Отбор);
		
		Для Каждого СтрокаТовары Из ТоварыВерсии Цикл
			НоваяСтрока = Товары.Добавить();
			ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТовары);
		КонецЦикла;
		
	//ФМ{
	ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.фмРеестрТранспортныхУслуг") Тогда
		
		// Заполним реквизиты шапки по документу основанию.
		ЗаполнениеДокументов.ЗаполнитьПоОснованию(ЭтотОбъект, Основание);
		фмДокументОснования=Основание.ссылка;
		если фмДокументОснования.услуги.количество()>0 тогда
			ставкандс=фмДокументОснования.услуги.получить(0).ставкандс;
		конецесли;
		Если Контрагент.код = "00-003085" и организация.ИНН = "1639030113" Тогда //Аверс
			СтруктурнаяЕдиница = Справочники.БанковскиеСчета.НайтиПоРеквизиту("НомерСчета", "40702810701490002357");
		ИначеЕсли Контрагент.код = "00-003085" и организация.ИНН = "1639015958" Тогда //Аверс
			СтруктурнаяЕдиница = Справочники.БанковскиеСчета.НайтиПоРеквизиту("НомерСчета", "40702810301490002359");
		ИначеЕсли (Контрагент.ИНН = "5047071528" или Контрагент.ИНН = "5032080978" или Контрагент.ИНН = "7719726605" или Контрагент.ИНН = "7733043569" или Контрагент.ИНН = "5012093506" или Контрагент.ИНН = "5032289680")
			и организация.ИНН = "1639030113" Тогда //Альфа банк
			СтруктурнаяЕдиница = Справочники.БанковскиеСчета.НайтиПоРеквизиту("НомерСчета", "40702810929140003583");
		КонецЕсли;
		если основание.короткийсчет тогда
			новаястрока=Товары.Добавить();
			новаястрока.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию("Транспортно-зкспедиционные услуги");
			новаястрока.Содержание="Транспортно-экспедиционные услуги по доставке груза согласно реестра №"+сокрлп(основание.номерреестра)+" от "+сокрлп(сред(основание.дата,1,10));
			новаястрока.Количество=основание.услуги.количество();
			новаястрока.Сумма=?(основание.суммавключаетндс,основание.суммадокумента,основание.услуги.итог("Сумма"));
			новаястрока.СуммаНДС=основание.услуги.итог("СуммаНДС");
			новаястрока.СтавкаНДС=ставкандс;
		иначе
			
			Запрос = Новый Запрос();
			Запрос.УстановитьПараметр("Ссылка", Основание.Ссылка);
			
			Запрос.Текст =
			"ВЫБРАТЬ
			|	АктОбОказанииПроизводственныхУслугУслуги.Номенклатура,
			|	АктОбОказанииПроизводственныхУслугУслуги.СтавкаНДС,
			|	АктОбОказанииПроизводственныхУслугУслуги.Цена,
			|	АктОбОказанииПроизводственныхУслугУслуги.Количество КАК Количество,
			|	АктОбОказанииПроизводственныхУслугУслуги.Сумма КАК Сумма,
			|	АктОбОказанииПроизводственныхУслугУслуги.СуммаНДС КАК СуммаНДС,
			|	АктОбОказанииПроизводственныхУслугУслуги.Содержание
			|ИЗ
			|	Документ.фмРеестрТранспортныхУслуг.Услуги КАК АктОбОказанииПроизводственныхУслугУслуги
			|ГДЕ
			|	АктОбОказанииПроизводственныхУслугУслуги.Ссылка = &Ссылка";
			ВыборкаУслуг = Запрос.Выполнить().Выбрать();
			
			Пока ВыборкаУслуг.Следующий() Цикл
				НоваяСтрока = Товары.Добавить();
				ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаУслуг);
			КонецЦикла;
		конецесли;
		//ФМ}
		
	КонецЕсли;

КонецПроцедуры

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

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

Тип:

image.png

Состав:

image.png

image.png

image.png

image.png

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

image.png

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

image.png

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

image.png

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

image.png

image.png

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

image.png

image.png

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

image.png

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

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

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

image.png

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

image.png

image.png

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

image.png

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

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

image.png

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

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

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

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

image.png

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

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