Не могу знать,
смотрите
СчетУчета = ПланыСчетов.Хозрасчетный[ИмяСчета];
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОборотыДтКт.Регистратор,
| ХозрасчетныйОборотыДтКт.Период,
| ТИПЗНАЧЕНИЯ(ХозрасчетныйОборотыДтКт.Регистратор) КАК ВидДок
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Нач, &Кон, Регистратор, , , , , ) КАК ХозрасчетныйОборотыДтКт
|ГДЕ
| (ХозрасчетныйОборотыДтКт.СчетДт В ИЕРАРХИИ (&Счета)
| ИЛИ ХозрасчетныйОборотыДтКт.СчетКт В ИЕРАРХИИ (&Счета))";
Если ЗначениеЗаполнено(Контрагент) Тогда
Запрос.Текст = Запрос.Текст + "
|И (ХозрасчетныйОборотыДтКт.СубконтоКт1 В ИЕРАРХИИ (&Контрагент)
| ИЛИ ХозрасчетныйОборотыДтКт.СубконтоДт1 В ИЕРАРХИИ (&Контрагент))";
Запрос.УстановитьПараметр("Контрагент", Контрагент);
КонецЕсли;
Запрос.Текст = Запрос.Текст + "
|СГРУППИРОВАТЬ ПО
| ХозрасчетныйОборотыДтКт.Период,
| ХозрасчетныйОборотыДтКт.Регистратор
|
|УПОРЯДОЧИТЬ ПО
| ХозрасчетныйОборотыДтКт.Период,
| ХозрасчетныйОборотыДтКт.Регистратор
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("Нач", Нач);
Запрос.УстановитьПараметр("Кон", ?(ЗначениеЗаполнено(Кон), КонецДня(Кон), Кон));
Счета = Новый Массив;
Счета.Добавить(СчетУчета);
Запрос.УстановитьПараметр("Счета", Счета);
// Запрос.УстановитьПараметр("Организация", Организация);
РезультатЗапроса = Запрос.Выполнить();
ВидыДокум = РезультатЗапроса.Выгрузить();
ВидыДокум.Свернуть("ВидДок");
Сообщить("=== Список найденных видов документов по счету учета "+СчетУчета+" ===");
Для Каждого Стр Из ВидыДокум Цикл
Сообщить(Стр.ВидДок);
КонецЦикла;
Сообщить("=====================================================");
//Возврат;
Показать
ТекВидДоговора = ?(ИмяСчета = "РасчетыСПоставщикамиИПодрядчиками", Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком,
?(ИмяСчета = "РасчетыСПокупателямиИЗаказчиками", Перечисления.ВидыДоговоровКонтрагентов.СПокупателем,
Перечисления.ВидыДоговоровКонтрагентов.Прочее));
ТекСчетАвансов = ?(ИмяСчета = "РасчетыСПоставщикамиИПодрядчиками", ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным,
?(ИмяСчета = "РасчетыСПокупателямиИЗаказчиками", ПланыСчетов.Хозрасчетный.РасчетыПоАвансамПолученным,
ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами));
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Регистратор = Выборка.Регистратор;
МетаданныеДокумента = Регистратор.Метаданные();
Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ДоговорКонтрагента", МетаданныеДокумента) Тогда
ТекДоговор = Регистратор.ДоговорКонтрагента;
ОтборОснДоговора = Новый Структура;
ОтборОснДоговора.Вставить("Организация", ТекДоговор.Организация);
ОтборОснДоговора.Вставить("Контрагент", ТекДоговор.Владелец);
ОтборОснДоговора.Вставить("ВидДоговора", ТекВидДоговора);
ОсновнойДоговор = РегистрыСведений.ОсновныеДоговорыКонтрагента.Получить(ОтборОснДоговора).Договор;
Документ = Регистратор.ПолучитьОбъект();
Изменен = Ложь;
// Попытка
Если НЕ ЗначениеЗаполнено(ОсновнойДоговор) Тогда
МенеджерЗаписи = РегистрыСведений.ОсновныеДоговорыКонтрагента.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Организация = ТекДоговор.Организация;
МенеджерЗаписи.Контрагент = ТекДоговор.Владелец;
МенеджерЗаписи.ВидДоговора = ТекВидДоговора;
МенеджерЗаписи.Договор = ТекДоговор;
МенеджерЗаписи.Записать();
ОсновнойДоговор = ТекДоговор;
ИначеЕсли ОсновнойДоговор <> ТекДоговор и ЗначениеЗаполнено(ТекДоговор) Тогда
Документ.ДоговорКонтрагента = ОсновнойДоговор;
Изменен = Истина;
КонецЕсли;
Если ОбщегоНазначения.ЕстьРеквизитОбъекта("СчетУчетаРасчетовПоАвансам", МетаданныеДокумента) Тогда
Если Регистратор.СчетУчетаРасчетовПоАвансам <> ТекСчетАвансов Тогда
Документ.СчетУчетаРасчетовПоАвансам = ТекСчетАвансов;
Изменен = Истина;
КонецЕсли;
КонецЕсли;
Если МетаданныеДокумента.Имя = "СписаниеСРасчетногоСчета" Тогда
Если Документ.ВидОперации = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ОплатаПоставщику Тогда
Для Каждого ТекущаяСтрока Из Документ.РасшифровкаПлатежа Цикл
Если Сред(Строка(ТекущаяСтрока.СчетУчетаРасчетовСКонтрагентом),1,2) = Сред(Строка(СчетУчета),1,2) Тогда
Если ТекущаяСтрока.СпособПогашенияЗадолженности <> Перечисления.СпособыПогашенияЗадолженности.Автоматически Тогда
Изменен = Истина;
ТекущаяСтрока.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически;
КонецЕсли;
Если ТекущаяСтрока.ДоговорКонтрагента <> ОсновнойДоговор Тогда
ТекущаяСтрока.ДоговорКонтрагента = ОсновнойДоговор;
Изменен = Истина;
КОнецЕсли;
Если ТекущаяСтрока.СчетУчетаРасчетовПоАвансам <> ТекСчетАвансов Тогда
Изменен = Истина;
ТекущаяСтрока.СчетУчетаРасчетовПоАвансам = ТекСчетАвансов;
КонецЕсли;
Иначе
Сообщить("! У регистратора: "+Регистратор+" попался левый счет: "+ТекущаяСтрока.СчетУчетаРасчетовСКонтрагентом, СтатусСообщения.Информация);
КонецЕсли;
КонецЦикла;
Иначе
Сообщить("/ По сч. 60.х у регистратора: "+Регистратор+" иной вид операции: "+Документ.ВидОперации, СтатусСообщения.Информация);
КонецЕсли;
ИначеЕсли МетаданныеДокумента.Имя = "ПоступлениеНаРасчетныйСчет" Тогда
Если Документ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя Тогда
Для Каждого ТекущаяСтрока Из Документ.РасшифровкаПлатежа Цикл
Если Сред(Строка(ТекущаяСтрока.СчетУчетаРасчетовСКонтрагентом),1,2) = Сред(Строка(СчетУчета),1,2) Тогда
Если ТекущаяСтрока.СпособПогашенияЗадолженности <> Перечисления.СпособыПогашенияЗадолженности.Автоматически Тогда
Изменен = Истина;
ТекущаяСтрока.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически;
КонецЕсли;
Если ТекущаяСтрока.ДоговорКонтрагента <> ОсновнойДоговор Тогда
ТекущаяСтрока.ДоговорКонтрагента = ОсновнойДоговор;
Изменен = Истина;
КОнецЕсли;
Если ТекущаяСтрока.СчетУчетаРасчетовПоАвансам <> ТекСчетАвансов Тогда
Изменен = Истина;
ТекущаяСтрока.СчетУчетаРасчетовПоАвансам = ТекСчетАвансов;
КонецЕсли;
Иначе
Сообщить("! У регистратора: "+Регистратор+" попался левый счет: "+ТекущаяСтрока.СчетУчетаРасчетовСКонтрагентом, СтатусСообщения.Информация);
КонецЕсли;
КонецЦикла;
Иначе
Сообщить("/ По сч. 62.х у регистратора: "+Регистратор+" иной вид операции: "+Документ.ВидОперации, СтатусСообщения.Информация);
КонецЕсли;
КОнецЕсли;
Если Изменен Тогда
Документ.Записать(РежимЗаписиДокумента.Проведение);
Сообщить("= Изменен = "+Документ);
КонецЕсли;
//Исключение
// ТекстОшибки = ""+ ОписаниеОшибки() + " = "+Регистратор;
// Сообщить(ТекстОшибки);
//КонецПопытки
Иначе
Сообщить("~ У регистратора проводок "+Регистратор+" нет реквизита ""ДоговорКонтрагента""", СтатусСообщения.Важное);
КонецЕсли;
КонецЦикла
Показать