Долго проводится документ "Передача ОС" в бухгалтерии 3

1. ANDRU48DOP 5 11.07.17 09:41 Сейчас в теме
Долго проводится документ "Передача ОС" в бухгалтерии 3.0 (клиент-серверный вариант ms sql).

Версия платформы: 1С:Предприятие 8.3 (8.3.9.2170)
Версия релиза: Бухгалтерия предприятия, редакция 3.0 (3.0.51.20)

Почитал конференцию 1с, нашел одну тему, там просят проверить на демо базе релиза 3.0.42 и все, сейчас проверяю на демобазе релиза 3.0.51.20.

Пробовал сделать перестроение индекса, реиндексацию, очистку статистики, тоже самое.

Никто не сталкивался? может платформа новая нужна?

Посмотрел замер производительности, много времени уходит на запрос при проведении (конфа типовая):
в общем модуле УчетОС


Функция ПодготовитьТаблицуАрендныхПлатежей(ТаблицаОС, Реквизиты, Отказ)

	ТаблицаАрендныхПлатежей = ПолучитьПустуюТаблицуАрендныхПлатежей();
	
	МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

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

	// Определяем суммы арендных платежей без НДС из проводок вида Дт 76.07.1,76.27.1,76.37.1 - Кт 60,76 (с поставщиком)
	// по одному и тому же контрагенту и договору в Дт и Кт.
	
	МассивСчетовАрендныеОбязательства = Новый Массив;
	МассивСчетовАрендныеОбязательства.Добавить(ПланыСчетов.Хозрасчетный.АрендныеОбязательства);    // 76.07.1
	МассивСчетовАрендныеОбязательства.Добавить(ПланыСчетов.Хозрасчетный.АрендныеОбязательстваВал); // 76.27.1
	МассивСчетовАрендныеОбязательства.Добавить(ПланыСчетов.Хозрасчетный.АрендныеОбязательстваУЕ);  // 76.37.1
	
	МассивСчетовЛизинговыеПлатежи = Новый Массив;
	МассивСчетовЛизинговыеПлатежи.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками);     // 60
	МассивСчетовЛизинговыеПлатежи.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСРазнымиДебиторамиИКредиторами); // 76
	
	МассивСчетовНДСпоАренднымОбязательствам = Новый Массив;
	МассивСчетовНДСпоАренднымОбязательствам.Добавить(ПланыСчетов.Хозрасчетный.НДСпоАренднымОбязательствам);   // 76.07.9
	МассивСчетовНДСпоАренднымОбязательствам.Добавить(ПланыСчетов.Хозрасчетный.НДСпоАренднымОбязательствамУЕ); // 76.37.9
	
	ВидыСубконтоКонтрагентыДоговоры = Новый Массив;
	ВидыСубконтоКонтрагентыДоговоры.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты);
	ВидыСубконтоКонтрагентыДоговоры.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры);
	
	Запрос.УстановитьПараметр("МассивСчетовАрендныеОбязательства", МассивСчетовАрендныеОбязательства);
	Запрос.УстановитьПараметр("МассивСчетовЛизинговыеПлатежи", МассивСчетовЛизинговыеПлатежи);
	Запрос.УстановитьПараметр("МассивСчетовНДСпоАренднымОбязательствам", МассивСчетовНДСпоАренднымОбязательствам);
	Запрос.УстановитьПараметр("Регистратор", Реквизиты.Регистратор);
	Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(Реквизиты.Период));
	
	Если ТаблицаОС.Количество() > 0 Тогда
		Запрос.УстановитьПараметр("КонецПериода", Реквизиты.Период);
		Запрос.УстановитьПараметр("КонецПериодаГраница", Новый Граница(Реквизиты.Регистратор.МоментВремени(), ВидГраницы.Исключая));
	Иначе
		Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(Реквизиты.Период));
		Запрос.УстановитьПараметр("КонецПериодаГраница", Новый Граница(КонецМесяца(Реквизиты.Период), ВидГраницы.Включая));
	КонецЕсли;
	
	Запрос.УстановитьПараметр("ВидыСубконтоКонтрагентыДоговоры", ВидыСубконтоКонтрагентыДоговоры);
	Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета());
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Хозрасчетный.НомерСтроки КАК НомерСтроки,
	|	Хозрасчетный.СуммаНУКт,
	|	Хозрасчетный.Регистратор КАК Регистратор
	|ПОМЕСТИТЬ Проводки
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
	|ГДЕ
	|	Хозрасчетный.Регистратор = &Регистратор
	|	И Хозрасчетный.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|	И Хозрасчетный.Организация = &Организация
	|	И Хозрасчетный.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.КорректировкаСтоимостиАрендованногоИмущества)
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ХозрасчетныйСубконто.Значение КАК ОсновноеСредство,
	|	СУММА(Проводки.СуммаНУКт) КАК Сумма
	|ПОМЕСТИТЬ ПризнаноРасходовПоДокументу
	|ИЗ
	|	Проводки КАК Проводки
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Субконто КАК ХозрасчетныйСубконто
	|		ПО Проводки.Регистратор = ХозрасчетныйСубконто.Регистратор
	|			И Проводки.НомерСтроки = ХозрасчетныйСубконто.НомерСтроки
	|			И (ХозрасчетныйСубконто.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Кредит))
	|			И (ХозрасчетныйСубконто.Вид = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства))
	|
	|СГРУППИРОВАТЬ ПО
	|	ХозрасчетныйСубконто.Значение
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	ОсновноеСредство
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|УНИЧТОЖИТЬ Проводки
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ПризнаноРасходовОбороты.Субконто1 КАК ОсновноеСредство,
	|	ПризнаноРасходовОбороты.СуммаНУОборотКт КАК Сумма
	|ПОМЕСТИТЬ ПризнаноРасходовЗаПериод
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.Обороты(
	|			&НачалоПериода,
	|			&КонецПериода,
	|			,
	|			Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.КорректировкаСтоимостиАрендованногоИмущества),
	|			ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства),
	|			Организация = &Организация
	|				И Субконто1 В
	|					(ВЫБРАТЬ
	|						НеСнятыеСУчета.ОсновноеСредство
	|					ИЗ
	|						НеСнятыеСУчета),
	|			,
	|			) КАК ПризнаноРасходовОбороты
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	ОсновноеСредство
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ЗаПериод.ОсновноеСредство КАК ОсновноеСредство,
	|	ЗаПериод.Сумма - ЕСТЬNULL(ПоДокументу.Сумма, 0) КАК Сумма
	|ПОМЕСТИТЬ ВТ_ПризнаноРасходов
	|ИЗ
	|	ПризнаноРасходовЗаПериод КАК ЗаПериод
	|		ЛЕВОЕ СОЕДИНЕНИЕ ПризнаноРасходовПоДокументу КАК ПоДокументу
	|		ПО ЗаПериод.ОсновноеСредство = ПоДокументу.ОсновноеСредство
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	ОсновноеСредство
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|УНИЧТОЖИТЬ ПризнаноРасходовПоДокументу
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|УНИЧТОЖИТЬ ПризнаноРасходовЗаПериод
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	Хозрасчетный.Ссылка
	|ПОМЕСТИТЬ ВТ_СчетаРасчетовСПоставщиком
	|ИЗ
	|	ПланСчетов.Хозрасчетный КАК Хозрасчетный
	|ГДЕ
	|	Хозрасчетный.Ссылка В ИЕРАРХИИ(&МассивСчетовЛизинговыеПлатежи)
	|	И НЕ Хозрасчетный.Ссылка В ИЕРАРХИИ (&МассивСчетовНДСпоАренднымОбязательствам)
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	Хозрасчетный.Ссылка
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ХозрасчетныйОстаткиИОбороты.Счет КАК СчетЗадолженностиПоАренде,
	|	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Контрагент,
	|	ХозрасчетныйОстаткиИОбороты.Субконто2 КАК ДоговорКонтрагента,
	|	ВЫБОР
	|		КОГДА ХозрасчетныйОстаткиИОбороты.Счет.Валютный
	|			ТОГДА ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаНачальныйОстатокКт
	|		ИНАЧЕ ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт
	|	КОНЕЦ КАК ВалютнаяСуммаНачальныйОстаток,
	|	ВЫБОР
	|		КОГДА ХозрасчетныйОстаткиИОбороты.Счет.Валютный
	|			ТОГДА ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотДт
	|		ИНАЧЕ ХозрасчетныйОстаткиИОбороты.СуммаОборотДт
	|	КОНЕЦ КАК ВалютнаяСуммаОборотДт,
	|	ВЫБОР
	|		КОГДА ХозрасчетныйОстаткиИОбороты.Счет.Валютный
	|			ТОГДА ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотКт
	|		ИНАЧЕ ХозрасчетныйОстаткиИОбороты.СуммаОборотКт
	|	КОНЕЦ КАК ВалютнаяСуммаОборотКт
	|ПОМЕСТИТЬ ВТ_ЗадолженностьПоАренде
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериодаГраница, , , Счет В (&МассивСчетовАрендныеОбязательства), &ВидыСубконтоКонтрагентыДоговоры, Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ХозрасчетныйОборотыДтКт.СчетДт КАК СчетЗадолженностиПоАренде,
	|	ХозрасчетныйОборотыДтКт.СчетКт КАК СчетРасчетовСКонтрагентом,
	|	ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
	|	ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорКонтрагента,
	|	ХозрасчетныйОборотыДтКт.ПодразделениеКт КАК Подразделение,
	|	ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК ДокументРасчетовСКонтрагентом,
	|	ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаПлатежаБезНДС,
	|	ВЫБОР
	|		КОГДА ХозрасчетныйОборотыДтКт.СчетКт.Валютный
	|			ТОГДА ХозрасчетныйОборотыДтКт.ВалютаКт
	|		ИНАЧЕ &ВалютаРегламентированногоУчета
	|	КОНЕЦ КАК ВалютаВзаиморасчетов
	|ПОМЕСТИТЬ ВТ_АрендныеПлатежи
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
	|			&НачалоПериода,
	|			&КонецПериодаГраница,
	|			,
	|			СчетДт В (&МассивСчетовАрендныеОбязательства),
	|			&ВидыСубконтоКонтрагентыДоговоры,
	|			СчетКт В
	|				(ВЫБРАТЬ
	|					ВТ_СчетаРасчетовСПоставщиком.Ссылка
	|				ИЗ
	|					ВТ_СчетаРасчетовСПоставщиком КАК ВТ_СчетаРасчетовСПоставщиком),
	|			,
	|			Организация = &Организация) КАК ХозрасчетныйОборотыДтКт
	|ГДЕ
	|	ХозрасчетныйОборотыДтКт.СубконтоДт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
	|	И ХозрасчетныйОборотыДтКт.СубконтоДт2 = ХозрасчетныйОборотыДтКт.СубконтоКт2
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	Контрагент,
	|	ДоговорКонтрагента,
	|	СчетЗадолженностиПоАренде
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ПервоначальныеСведенияОСБухгалтерскийУчет.ОсновноеСредство,
	|	ПервоначальныеСведенияОСБухгалтерскийУчет.Контрагент,
	|	ПервоначальныеСведенияОСБухгалтерскийУчет.ДоговорКонтрагента,
	|	ПервоначальныеСведенияОСБухгалтерскийУчет.ИнвентарныйНомер,
	|	ПервоначальныеСведенияОСБухгалтерскийУчет.ПервоначальнаяСтоимость
	|ПОМЕСТИТЬ ВТ_ОСвАренде
	|ИЗ
	|	РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(
	|			&КонецПериода,
	|			Организация = &Организация
	|				И ОсновноеСредство В
	|					(ВЫБРАТЬ
	|						НеСнятыеСУчета.ОсновноеСредство
	|					ИЗ
	|						НеСнятыеСУчета)
	|				И СпособПоступления = ЗНАЧЕНИЕ(Перечисление.СпособыПоступленияАктивов.ПоДоговоруЛизинга)) КАК ПервоначальныеСведенияОСБухгалтерскийУчет
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	ПервоначальныеСведенияОСБухгалтерскийУчет.Контрагент,
	|	ПервоначальныеСведенияОСБухгалтерскийУчет.ДоговорКонтрагента
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	СпособыОтраженияРасходовПоАренднымПлатежамОСНалоговыйУчет.ОсновноеСредство,
	|	СпособыОтраженияРасходовПоАренднымПлатежамОСНалоговыйУчет.СпособОтраженияРасходовПоАренднымПлатежам
	|ПОМЕСТИТЬ ВТ_СпособыОтраженияРасходовПоАренднымПлатежамНалоговыйУчет
	|ИЗ
	|	РегистрСведений.СпособыОтраженияРасходовПоАренднымПлатежамОСНалоговыйУчет.СрезПоследних(
	|			&КонецПериода,
	|			Организация = &Организация
	|				И ОсновноеСредство В
	|					(ВЫБРАТЬ
	|						НеСнятыеСУчета.ОсновноеСредство
	|					ИЗ
	|						НеСнятыеСУчета)) КАК СпособыОтраженияРасходовПоАренднымПлатежамОСНалоговыйУчет
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	СпособыОтраженияРасходовПоАренднымПлатежамОСНалоговыйУчет.ОсновноеСредство
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВТ_ЗадолженностьПоАренде.СчетЗадолженностиПоАренде КАК СчетЗадолженностиПоАренде,
	|	ВТ_ЗадолженностьПоАренде.Контрагент КАК Контрагент,
	|	ВТ_ЗадолженностьПоАренде.ДоговорКонтрагента КАК ДоговорКонтрагента,
	|	ЕСТЬNULL(ВТ_ЗадолженностьПоАренде.ВалютнаяСуммаНачальныйОстаток, 0) КАК ВалютнаяСуммаНачальныйОстаток,
	|	ЕСТЬNULL(ВТ_ЗадолженностьПоАренде.ВалютнаяСуммаОборотДт, 0) КАК ВалютнаяСуммаОборотДт,
	|	ЕСТЬNULL(ВТ_ЗадолженностьПоАренде.ВалютнаяСуммаОборотКт, 0) КАК ВалютнаяСуммаОборотКт,
	|	ВТ_АрендныеПлатежи.СчетРасчетовСКонтрагентом КАК СчетРасчетовСКонтрагентом,
	|	ВТ_АрендныеПлатежи.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
	|	ВТ_АрендныеПлатежи.Подразделение КАК Подразделение,
	|	ВТ_АрендныеПлатежи.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
	|	ВТ_ОСвАренде.ОсновноеСредство КАК ОсновноеСредство,
	|	ВТ_ОСвАренде.ИнвентарныйНомер КАК ИнвентарныйНомер,
	|	ЕСТЬNULL(ВТ_ОСвАренде.ПервоначальнаяСтоимость, 0) КАК ПервоначальнаяСтоимость,
	|	ЕСТЬNULL(ВТ_АрендныеПлатежи.СуммаПлатежаБезНДС, 0) КАК СуммаПлатежаБезНДС,
	|	ЕСТЬNULL(ВТ_СпособыОтраженияРасходовПоАренднымПлатежамНалоговыйУчет.СпособОтраженияРасходовПоАренднымПлатежам, ЗНАЧЕНИЕ(Справочник.СпособыОтраженияРасходовПоАмортизации.ПустаяСсылка)) КАК СпособОтраженияРасходовПоАренднымПлатежам,
	|	ЕСТЬNULL(ВТ_ПризнаноРасходов.Сумма, 0) КАК ПризнаноРасходовСумма
	|ИЗ
	|	ВТ_ЗадолженностьПоАренде КАК ВТ_ЗадолженностьПоАренде
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АрендныеПлатежи КАК ВТ_АрендныеПлатежи
	|		ПО ВТ_ЗадолженностьПоАренде.СчетЗадолженностиПоАренде = ВТ_АрендныеПлатежи.СчетЗадолженностиПоАренде
	|			И ВТ_ЗадолженностьПоАренде.Контрагент = ВТ_АрендныеПлатежи.Контрагент
	|			И ВТ_ЗадолженностьПоАренде.ДоговорКонтрагента = ВТ_АрендныеПлатежи.ДоговорКонтрагента
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОСвАренде КАК ВТ_ОСвАренде
	|		ПО ВТ_ЗадолженностьПоАренде.Контрагент = ВТ_ОСвАренде.Контрагент
	|			И ВТ_ЗадолженностьПоАренде.ДоговорКонтрагента = ВТ_ОСвАренде.ДоговорКонтрагента
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СпособыОтраженияРасходовПоАренднымПлатежамНалоговыйУчет КАК ВТ_СпособыОтраженияРасходовПоАренднымПлатежамНалоговыйУчет
	|		ПО (ВТ_ОСвАренде.ОсновноеСредство = ВТ_СпособыОтраженияРасходовПоАренднымПлатежамНалоговыйУчет.ОсновноеСредство)
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПризнаноРасходов КАК ВТ_ПризнаноРасходов
	|		ПО (ВТ_ОСвАренде.ОсновноеСредство = ВТ_ПризнаноРасходов.ОсновноеСредство)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Контрагент,
	|	ДоговорКонтрагента,
	|	СчетЗадолженностиПоАренде,
	|	ВТ_АрендныеПлатежи.ВалютаВзаиморасчетов,
	|	Подразделение,
	|	СчетРасчетовСКонтрагентом,
	|	ДокументРасчетовСКонтрагентом,
	|	ОсновноеСредство";

	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат ТаблицаАрендныхПлатежей;
	КонецЕсли;
	
	Выборка = РезультатЗапроса.Выбрать();
	ЕстьДанные = Выборка.Следующий();
	
	ВременнаяТаблицаАрендныхПлатежей = ТаблицаАрендныхПлатежей.СкопироватьКолонки();

	Пока ЕстьДанные Цикл
		
		ТекущийСчетЗадолженностиПоАренде     = Выборка.СчетЗадолженностиПоАренде;
		ТекущийКонтрагент                    = Выборка.Контрагент;
		ТекущийДоговорКонтрагента            = Выборка.ДоговорКонтрагента;
		ТекущаяВалютаВзаиморасчетов          = Выборка.ВалютаВзаиморасчетов;
		ТекущееПодразделение                 = Выборка.Подразделение;
		ТекущийСчетРасчетовСКонтрагентом     = Выборка.СчетРасчетовСКонтрагентом;
		ТекущийДокументРасчетовСКонтрагентом = Выборка.ДокументРасчетовСКонтрагентом;
		СуммаПлатежаБезНДС                   = Выборка.СуммаПлатежаБезНДС;
		ВалютнаяСуммаНачальныйОстаток        = Выборка.ВалютнаяСуммаНачальныйОстаток;
		ВалютнаяСуммаОборотКт                = Выборка.ВалютнаяСуммаОборотКт;
	
		Если Выборка.ПризнаноРасходовСумма <> 0 Тогда
			ЕстьДанные = Выборка.Следующий();
			Продолжить;
		КонецЕсли;
		
		// Проверка заполнения таблицы
		Если НЕ ЗначениеЗаполнено(Выборка.ОсновноеСредство) Тогда
			
			Если ТаблицаОС.Количество() = 0 Тогда
			
				ШаблонСообщения = НСтр("ru = 'Не определен предмет аренды для отражения расходов "
					+ " по арендным платежам в налоговом учете для ""%1"" по ""%2"". "
					+ "Расходы не будут отражены в налоговом учете.'");
				ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, 
					Выборка.Контрагент, 
					Выборка.ДоговорКонтрагента);

				// Выводим сообщение пользователю по текущему объекту, 
				// но не прерываем выполнение всей процедуры.
				БухгалтерскийУчетПереопределяемый.СообщитьОбОшибкеРегОперацииСНавигацией(ТекстСообщения, 
					Выборка.ДоговорКонтрагента, , Неопределено);
					
			КонецЕсли;
				
			ЕстьДанные = Выборка.Следующий();
			Продолжить;
		КонецЕсли;
		
		Если НЕ ЗначениеЗаполнено(Выборка.СпособОтраженияРасходовПоАренднымПлатежам) Тогда
			ШаблонСообщения = НСтр("ru = 'Не определен способ отражения расходов "
				+ " по арендным платежам в налоговом учете для ""%1"" по ""%2"", "
				+ " предмет аренды ""%3"" (инвентарный номер ""%4""). "
				+ "Расходы не будут отражены в налоговом учете.'");
			ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, 
				Выборка.Контрагент, 
				Выборка.ДоговорКонтрагента, 
				Выборка.ОсновноеСредство, 
				Выборка.ИнвентарныйНомер);

			// Выводим сообщение пользователю по текущему объекту, 
			// но не прерываем выполнение всей процедуры.
			БухгалтерскийУчетПереопределяемый.СообщитьОбОшибкеРегОперацииСНавигацией(ТекстСообщения, 
				Выборка.ОсновноеСредство, , Неопределено);
				
			ЕстьДанные = Выборка.Следующий();
			Продолжить;
		КонецЕсли;
		
		Если (ВалютнаяСуммаНачальныйОстаток + ВалютнаяСуммаОборотКт = 0)
			И СуммаПлатежаБезНДС <> 0 Тогда
			
			ШаблонСообщения = НСтр("ru = 'По договору ""%1"" c ""%2"" отражено начисление"
				+ " арендного платежа в сумме %3 руб., но кредиторской задолженности по счету %4"
				+ " на начало месяца и кредитового оборота в течение месяца нет."
				+ " Расходы по арендному платежу не будут отражены в налоговом учете.'");
			ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, 
				Выборка.ДоговорКонтрагента, 
				Выборка.Контрагент,
				Выборка.СуммаПлатежаБезНДС, 
				Выборка.СчетЗадолженностиПоАренде);

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

			Для Инд = 0 По ВременнаяТаблицаАрендныхПлатежей.Количество() - 1 Цикл
				СтрокаТаблицы = ВременнаяТаблицаАрендныхПлатежей[Инд];
				СтрокаТаблицы.СуммаПлатежаБезНДС = ?(МассивСуммаПлатежаБезНДС = Неопределено, 
					0, МассивСуммаПлатежаБезНДС[Инд]);
				СтрокаТаблицы.ВалютнаяСуммаНачальныйОстаток = ?(МассивВалютнаяСуммаНачальныйОстаток = Неопределено,
					0, МассивВалютнаяСуммаНачальныйОстаток[Инд]);
				СтрокаТаблицы.ВалютнаяСуммаОборотКт = ?(МассивВалютнаяСуммаОборотКт = Неопределено,
					0, МассивВалютнаяСуммаОборотКт[Инд]);
			КонецЦикла;
		КонецЕсли;
		
		Для Каждого СтрокаТаблицы Из ВременнаяТаблицаАрендныхПлатежей Цикл
			НоваяСтрока = ТаблицаАрендныхПлатежей.Добавить();
			ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы);
		КонецЦикла;
		
	КонецЦикла; 

	Возврат ТаблицаАрендныхПлатежей;

КонецФункции
Показать


Никто не сталкивался? может платформа новая нужна?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starik-2005 3082 11.07.17 09:49 Сейчас в теме
0.Включить использование итогов (мало-ли выключено).
1. Пересчет итогов.
2 Установка периода итогов на текущий квартал.
3. progr-2008 118 13.07.17 00:36 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот