Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2024, 01:50

Порядок документов в отчет Акт сверки

Автор sitash, 29 июл 2015, 09:31

0 Пользователей и 1 гость просматривают эту тему.

sitash

там все дублируется и идет расхождение. вот результат.

Дмитрий@

Главное, что они по порядку, теперь понятно из-за чего там не соблюдается сортировка, из-за группировки итогов по подразделению, то есть она сортирует даты только внутри договора. Вот код с минимальными переделками:
Процедура Печать(ТабДок)

ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов_АктСверки";
Макет  = ПолучитьМакет("Макет");
Приставка = "";
Если ВыводитьСРегламентом Тогда
Приставка = "Регл";
КонецЕсли;

ОбластьЗаголовок    = Макет.ПолучитьОбласть("Заголовок");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьНачОстатки   = Макет.ПолучитьОбласть("НачОстатки"+Приставка);
ОбластьНачОстаткиД  = Макет.ПолучитьОбласть("НачОстаткиДоговор"+Приставка);
ОбластьДоговор      = Макет.ПолучитьОбласть("Договор");
ОбластьДоговорИтоги = Макет.ПолучитьОбласть("ДоговорИтоги"+Приставка);
ОбластьОбороты      = Макет.ПолучитьОбласть("Обороты"+Приставка);
ОбластьОборотыИтог  = Макет.ПолучитьОбласть("ОборотыИтог"+Приставка);
ОбластьКонОстатки   = Макет.ПолучитьОбласть("КонОстатки"+Приставка);
ОбластьКонОстаткиД  = Макет.ПолучитьОбласть("КонОстаткиДоговор"+Приставка);
ОбластьПодвал       = Макет.ПолучитьОбласть("Подвал");

НазваниеОрганизации = Организация.НаименованиеПолное;
Если ПустаяСтрока(НазваниеОрганизации) Тогда
НазваниеОрганизации = Организация;
КонецЕсли;

НаименованиеКонтрагента = Контрагент.НаименованиеПолное;
Если ПустаяСтрока(НаименованиеКонтрагента) Тогда
НаименованиеКонтрагента = Контрагент;
КонецЕсли;

ОписаниеПериода = "за период: " + ПредставлениеПериода(НачалоДня(НачалоПериода), КонецДня(КонецПериода), "ФП = Истина");

ТекстЗаголовка = "взаимных расчетов " + ОписаниеПериода  + Символы.ПС
+ "между " + НазваниеОрганизации + Символы.ПС + "и " + НаименованиеКонтрагента;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
    ТекстЗаголовка = ТекстЗаголовка + Символы.ПС + "по договору " + СокрЛП(ДоговорКонтрагента.Наименование);
КонецЕсли;
ОбластьЗаголовок.Параметры.ТекстЗаголовка = ТекстЗаголовка;

ДанныеПредставителяОрганизации = ОбщегоНазначения.ДанныеФизЛица(Организация, ПредставительОрганизации, КонецПериода);
ФИОПредставителя = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Фамилия),"",ДанныеПредставителяОрганизации.Фамилия
+ ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Имя),""," "+ДанныеПредставителяОрганизации.Имя)
+ ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Отчество),""," "+ДанныеПредставителяОрганизации.Отчество));

СтрЗаголовокТаблица = "Мы, нижеподписавшиеся, " + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),"________________",ДанныеПредставителяОрганизации.Должность) + " " + НазваниеОрганизации
+ " " + ?(ФИОПредставителя<>"",ФИОПредставителя,"_______________________") + ", с одной стороны, "
+ "и " + ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента.Должность),"________________",ПредставительКонтрагента.Должность) + " " + НаименованиеКонтрагента + " "
+ ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента),"_______________________",ПредставительКонтрагента) + ", с другой стороны, "
+ "составили настоящий акт сверки в том, что состояние взаимных расчетов по данным учета следующее:";

ОбластьЗаголовок.Параметры.СтрЗаголовокТаблица = СтрЗаголовокТаблица;

ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);

ОбластьШапкаТаблицы.Параметры.НазваниеОрганизации = НазваниеОрганизации;
ОбластьШапкаТаблицы.Параметры.НаименованиеКонтрагента = НаименованиеКонтрагента;
ОбластьШапкаТаблицы.Параметры.ВалютаДокумента = ВалютаДокумента;
ТабДок.Вывести(ОбластьШапкаТаблицы);

ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДт = ?(ОстатокНаНачало > 0, ОстатокНаНачало, 0);
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКт = ?(ОстатокНаНачало < 0, -ОстатокНаНачало, 0);
Если ВыводитьСРегламентом Тогда
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДтРегл = ?(ОстатокНаНачалоРегл > 0, ОстатокНаНачалоРегл, 0);
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКтРегл = ?(ОстатокНаНачалоРегл < 0, -ОстатокНаНачалоРегл, 0);
КонецЕсли;

ТабДок.Вывести(ОбластьНачОстатки);

ОборотыДт = 0;
ОборотыКт = 0;
ОборотыДтКонтр = 0;
ОборотыКтКонтр = 0;

ОборотыДтРегл = 0;
ОборотыКтРегл = 0;
ОборотыДтКонтрРегл = 0;
ОборотыКтКонтрРегл = 0;

Если ПоДаннымОрганизации.Количество()>0 ИЛИ ПоДаннымКонтрагента.Количество()>0 Тогда

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПоДаннымОрганизации", ПоДаннымОрганизации.Выгрузить());
Запрос.УстановитьПараметр("ПоДаннымКонтрагента", ПоДаннымКонтрагента.Выгрузить());
Запрос.УстановитьПараметр("АктСверкиВзаиморасчетовОстаткиПоДоговорам", ОстаткиПоДоговорам.Выгрузить());
Запрос.Текст =
"ВЫБРАТЬ
| ПоДаннымОрганизации.Дата,
| ПоДаннымОрганизации.Договор,
| ПоДаннымОрганизации.Дебет,
| ПоДаннымОрганизации.Кредит,
| ПоДаннымОрганизации.ДебетРегл,
| ПоДаннымОрганизации.КредитРегл,
| ПоДаннымОрганизации.Представление,
| ПоДаннымОрганизации.Документ
|ПОМЕСТИТЬ ВТ_ПоДаннымОрганизации
|ИЗ
| &ПоДаннымОрганизации КАК ПоДаннымОрганизации
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПоДаннымКонтрагента.Дата,
| ПоДаннымКонтрагента.Договор,
| ПоДаннымКонтрагента.Дебет,
| ПоДаннымКонтрагента.Кредит,
| ПоДаннымКонтрагента.ДебетРегл,
| ПоДаннымКонтрагента.КредитРегл,
| ПоДаннымКонтрагента.Представление
|ПОМЕСТИТЬ ВТ_ПоДаннымКонтрагента
|ИЗ
| &ПоДаннымКонтрагента КАК ПоДаннымКонтрагента
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| АктСверкиВзаиморасчетовОстаткиПоДоговорам.Договор,
| АктСверкиВзаиморасчетовОстаткиПоДоговорам.Остаток,
| АктСверкиВзаиморасчетовОстаткиПоДоговорам.ОстатокРегл
|ПОМЕСТИТЬ ОстаткиПоДоговорам
|ИЗ
| &АктСверкиВзаиморасчетовОстаткиПоДоговорам КАК АктСверкиВзаиморасчетовОстаткиПоДоговорам
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЕСТЬNULL(ДанныеСДокумента.Договор, ОстаткиПоДоговорам.Договор) КАК Договор,
| ДанныеСДокумента.Дата КАК Дата,
| ДанныеСДокумента.ДатаК КАК ДатаК,
| ДанныеСДокумента.Докумет КАК Документ,
| ДанныеСДокумента.Представление КАК Представление,
| ДанныеСДокумента.ПредставлениеК КАК ПредставлениеК,
| ЕСТЬNULL(ДанныеСДокумента.Дебет, 0) КАК СуммаДогДт,
| ЕСТЬNULL(ДанныеСДокумента.Кредит, 0) КАК СуммаДогКт,
| ЕСТЬNULL(ДанныеСДокумента.ДебетК, 0) КАК СуммаДогДтКонтр,
| ЕСТЬNULL(ДанныеСДокумента.КредитК, 0) КАК СуммаДогКтКонтр,
| ЕСТЬNULL(ДанныеСДокумента.ДебетРегл, 0) КАК СуммаДогДтРегл,
| ЕСТЬNULL(ДанныеСДокумента.КредитРегл, 0) КАК СуммаДогКтРегл,
| ЕСТЬNULL(ДанныеСДокумента.ДебетКРегл, 0) КАК СуммаДогДтКонтрРегл,
| ЕСТЬNULL(ДанныеСДокумента.КредитКРегл, 0) КАК СуммаДогКтКонтрРегл,
| ЕСТЬNULL(ОстаткиПоДоговорам.Остаток, 0) КАК Остаток,
| ЕСТЬNULL(ОстаткиПоДоговорам.ОстатокРегл, 0) КАК ОстатокРегл
|ИЗ
| (ВЫБРАТЬ
| ОстаткиПоДоговорам.Договор КАК Договор,
| ОстаткиПоДоговорам.Остаток КАК Остаток,
| ОстаткиПоДоговорам.ОстатокРегл КАК ОстатокРегл
| ИЗ
| ОстаткиПоДоговорам КАК ОстаткиПоДоговорам) КАК ОстаткиПоДоговорам
| ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ВТ_ПоДаннымОрганизации.Договор КАК Договор,
| ВТ_ПоДаннымОрганизации.Дата КАК Дата,
| NULL КАК ДатаК,
| ВТ_ПоДаннымОрганизации.Документ КАК Докумет,
| ВТ_ПоДаннымОрганизации.Представление КАК Представление,
| NULL КАК ПредставлениеК,
| ВТ_ПоДаннымОрганизации.Дебет КАК Дебет,
| ВТ_ПоДаннымОрганизации.Кредит КАК Кредит,
| 0 КАК ДебетК,
| 0 КАК КредитК,
| ВТ_ПоДаннымОрганизации.ДебетРегл КАК ДебетРегл,
| ВТ_ПоДаннымОрганизации.КредитРегл КАК КредитРегл,
| 0 КАК ДебетКРегл,
| 0 КАК КредитКРегл
| ИЗ
| ВТ_ПоДаннымОрганизации КАК ВТ_ПоДаннымОрганизации
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВТ_ПоДаннымКонтрагента.Договор,
| "+?(РазбитьПоДоговорам,"NULL,","ВТ_ПоДаннымКонтрагента.Дата,") + "
| ВТ_ПоДаннымКонтрагента.Дата,
| NULL,
| NULL,
| ВТ_ПоДаннымКонтрагента.Представление,
| 0,
| 0,
| ВТ_ПоДаннымКонтрагента.Дебет,
| ВТ_ПоДаннымКонтрагента.Кредит,
| 0,
| 0,
| ВТ_ПоДаннымКонтрагента.ДебетРегл,
| ВТ_ПоДаннымКонтрагента.КредитРегл
| ИЗ
| ВТ_ПоДаннымКонтрагента КАК ВТ_ПоДаннымКонтрагента) КАК ДанныеСДокумента
| ПО ОстаткиПоДоговорам.Договор = ДанныеСДокумента.Договор
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| ДатаК
|ИТОГИ
| СУММА(СуммаДогДт),
| СУММА(СуммаДогКт),
| СУММА(СуммаДогДтКонтр),
| СУММА(СуммаДогКтКонтр),
| СУММА(СуммаДогДтРегл),
| СУММА(СуммаДогКтРегл),
| СУММА(СуммаДогДтКонтрРегл),
| СУММА(СуммаДогКтКонтрРегл),
| МАКСИМУМ(Остаток),
| МАКСИМУМ(ОстатокРегл)
|ПО
| ОБЩИЕ "+?(Не РазбитьПоДоговорам,""," ,
| Договор");

Результат = Запрос.Выполнить();

ОбходПоОбщимИтогам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Общие");
ОбходПоОбщимИтогам.Следующий();

ОборотыДт = ОбходПоОбщимИтогам.СуммаДогДт;
ОборотыКт = ОбходПоОбщимИтогам.СуммаДогКт;
ОборотыДтКонтр = ОбходПоОбщимИтогам.СуммаДогДтКонтр;
ОборотыКтКонтр = ОбходПоОбщимИтогам.СуммаДогКтКонтр;

ОборотыДтРегл = ОбходПоОбщимИтогам.СуммаДогДтРегл;
ОборотыКтРегл = ОбходПоОбщимИтогам.СуммаДогКтРегл;
ОборотыДтКонтрРегл = ОбходПоОбщимИтогам.СуммаДогДтКонтрРегл;
ОборотыКтКонтрРегл = ОбходПоОбщимИтогам.СуммаДогКтКонтрРегл;

ОстаткиНаКонецД = новый Соответствие;
Если РазбитьПоДоговорам Тогда
ОбходПоДоговорам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Договор");
Пока ОбходПоДоговорам.Следующий() Цикл
Если РазбитьПоДоговорам Тогда
//Выводим заголовок с договором
ОбластьДоговор.Параметры.Договор = ОбходПоДоговорам.Договор;
ОбластьДоговор.Параметры.Регистратор = ОбходПоДоговорам.Договор;
ТабДок.Вывести(ОбластьДоговор);
//Определим сальдо по договору
Если ОбходПоДоговорам.Количество() > 1 Тогда // если договор 1 то общее сальдо уже и есть сальдо по договору.
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокДт = ?(ОбходПоДоговорам.Остаток > 0, ОбходПоДоговорам.Остаток, 0);
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокКт = ?(ОбходПоДоговорам.Остаток < 0, -ОбходПоДоговорам.Остаток, 0);
Если ВыводитьСРегламентом Тогда
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокДтРегл = ?(ОбходПоДоговорам.ОстатокРегл > 0, ОбходПоДоговорам.ОстатокРегл, 0);
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокКтРегл = ?(ОбходПоДоговорам.ОстатокРегл < 0, -ОбходПоДоговорам.ОстатокРегл, 0);
КонецЕсли;
ОстаткиНаКонецД.Вставить(ОбходПоДоговорам.Договор, новый Структура("Остаток, ОстатокРегл", ОбходПоДоговорам.Остаток, ОбходПоДоговорам.ОстатокРегл));
ТабДок.Вывести(ОбластьНачОстаткиД);
КонецЕсли;
ОбходПоДокументам = ОбходПоДоговорам.Выбрать();
Иначе
ОбходПоДокументам = Результат.Выбрать();
КонецЕсли;

//Создадим список документов по организации и контрагенту
СписокДокументов = новый массив;
СписокДокументовК = новый массив;
Пока ОбходПоДокументам.Следующий() Цикл
Если ОбходПоДокументам.Дата<>NULL Тогда
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл",
ОбходПоДокументам.Дата,ОбходПоДокументам.Представление,ОбходПоДокументам.Документ,ОбходПоДокументам.СуммаДогДт,ОбходПоДокументам.СуммаДогКт,ОбходПоДокументам.СуммаДогДтРегл,ОбходПоДокументам.СуммаДогКтРегл));
КонецЕсли;

Если ОбходПоДокументам.ДатаК<>NULL Тогда
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл",
ОбходПоДокументам.ДатаК,ОбходПоДокументам.ПредставлениеК,ОбходПоДокументам.СуммаДогДтКонтр,ОбходПоДокументам.СуммаДогКтКонтр,ОбходПоДокументам.СуммаДогДтКонтрРегл,ОбходПоДокументам.СуммаДогКтКонтрРегл));
КонецЕсли;
КонецЦикла;

//Для упрощения вывода, сравним списки по количеству элементов, добавив пустые
МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
Если СписокДокументов.Количество()<СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл","","","","","","",""));
КонецЦикла;
ИначеЕсли СписокДокументов.Количество()>СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл","","","","","",""));
КонецЦикла;
КонецЕсли;

Для Инд = 0 По МаксИндекс Цикл
ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]);
ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]);
ТабДок.Вывести(ОбластьОбороты);
КонецЦикла;

Если РазбитьПоДоговорам и ОбходПоДоговорам.Количество() > 1 Тогда
//Выводим итоги по каждому договору
ОбластьДоговорИтоги.Параметры.Заполнить(ОбходПоДоговорам);
ТабДок.Вывести(ОбластьДоговорИтоги);

ОстатокНаКонецД = ОбходПоДоговорам.Остаток + ОбходПоДоговорам.СуммаДогДт -  ОбходПоДоговорам.СуммаДогКт;
ОстатокНаКонецДРегл = ОбходПоДоговорам.ОстатокРегл + ОбходПоДоговорам.СуммаДогДтРегл -  ОбходПоДоговорам.СуммаДогКтРегл;

// --- {
ОстатокНаКонецДКонтр = - ОбходПоДоговорам.Остаток + ОбходПоДоговорам.СуммаДогДтКонтр - ОбходПоДоговорам.СуммаДогКТКонтр;
ОстатокНаКонецДКонтрРегл = - ОбходПоДоговорам.ОстатокРегл + ОбходПоДоговорам.СуммаДогДтКонтрРегл - ОбходПоДоговорам.СуммаДогКТКонтрРегл;
// --- }

ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДт = ?(ОстатокНаКонецД > 0, ОстатокНаКонецД, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКт = ?(ОстатокНаКонецД < 0, -ОстатокНаКонецД, 0);

// --- {
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДтКонтр = ?(ОстатокНаКонецДКонтр > 0, ОстатокНаКонецДКонтр, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКтКонтр = ?(ОстатокНаКонецДКонтр < 0, -ОстатокНаКонецДКонтр, 0);
// --- }

Если ВыводитьСРегламентом Тогда
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДтРегл = ?(ОстатокНаКонецДРегл > 0, ОстатокНаКонецДРегл, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКтРегл = ?(ОстатокНаКонецДРегл < 0, -ОстатокНаКонецДРегл, 0);

// --- {
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДтКонтрРегл = ?(ОстатокНаКонецДКонтрРегл > 0, ОстатокНаКонецДКонтрРегл, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКтКонтрРегл = ?(ОстатокНаКонецДКонтрРегл < 0, -ОстатокНаКонецДКонтрРегл, 0);
// --- }
КонецЕсли;

ТабДок.Вывести(ОбластьКонОстаткиД);

Иначе
Прервать;
КонецЕсли;

КонецЦикла;

Иначе

ОбходПоДокументам = Результат.Выбрать();
//Создадим список документов по организации и контрагенту
СписокДокументов = новый массив;
СписокДокументовК = новый массив;
Пока ОбходПоДокументам.Следующий() Цикл
Если ОбходПоДокументам.ДатаК=NULL Тогда
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл",
ОбходПоДокументам.Дата,ОбходПоДокументам.Представление,ОбходПоДокументам.Документ,ОбходПоДокументам.СуммаДогДт,ОбходПоДокументам.СуммаДогКт,ОбходПоДокументам.СуммаДогДтРегл,ОбходПоДокументам.СуммаДогКтРегл));
КонецЕсли;

Если ОбходПоДокументам.ДатаК<>NULL Тогда
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл",
ОбходПоДокументам.ДатаК,ОбходПоДокументам.ПредставлениеК,ОбходПоДокументам.СуммаДогДтКонтр,ОбходПоДокументам.СуммаДогКтКонтр,ОбходПоДокументам.СуммаДогДтКонтрРегл,ОбходПоДокументам.СуммаДогКтКонтрРегл));
КонецЕсли;
КонецЦикла;

//Для упрощения вывода, сравним списки по количеству элементов, добавив пустые
МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
Если СписокДокументов.Количество()<СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл","","","","","","",""));
КонецЦикла;
ИначеЕсли СписокДокументов.Количество()>СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл","","","","","",""));
КонецЦикла;
КонецЕсли;

Для Инд = 0 По МаксИндекс Цикл
ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]);
ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]);
ТабДок.Вывести(ОбластьОбороты);
КонецЦикла;


КонецЕсли;

ОбластьОборотыИтог.Параметры.СуммаОборотДт      = ОборотыДт;
ОбластьОборотыИтог.Параметры.СуммаОборотКт      = ОборотыКт;

// --- {
ОбластьОборотыИтог.Параметры.СуммаОборотДтКонтр = ОборотыДтКонтр;
ОбластьОборотыИтог.Параметры.СуммаОборотКтКонтр = ОборотыКтКонтр;
// --- }
Если ВыводитьСРегламентом Тогда
ОбластьОборотыИтог.Параметры.СуммаОборотДтРегл = ОборотыДтРегл;
ОбластьОборотыИтог.Параметры.СуммаОборотКтРегл = ОборотыКтРегл;

// --- {
ОбластьОборотыИтог.Параметры.СуммаОборотДтКонтрРегл = ОборотыДтКонтрРегл;
ОбластьОборотыИтог.Параметры.СуммаОборотКтКонтрРегл = ОборотыКтКонтрРегл;
// --- }
КонецЕсли;

ТабДок.Вывести(ОбластьОборотыИтог);

КонецЕсли;
     
ОстатокНаКонец = ОстатокНаНачало + ОборотыДт - ОборотыКт;
ОстатокНаКонецРегл = ОстатокНаНачалоРегл + ОборотыДтРегл - ОборотыКтРегл;

ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДт = ?(ОстатокНаКонец > 0, ОстатокНаКонец, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКт = ?(ОстатокНаКонец < 0, -ОстатокНаКонец, 0);

// --- {
ОстатокНаКонецКонтр = ОстатокНаКонецКонтрагент;
ОстатокНаКонецКонтрРегл = ОстатокНаКонецКонтрагентРегл;

ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтр = ?(ОстатокНаКонецКонтр > 0, ОстатокНаКонецКонтр, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтр = ?(ОстатокНаКонецКонтр < 0, -ОстатокНаКонецКонтр, 0);
// --- }

Если ВыводитьСРегламентом Тогда
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтРегл = ?(ОстатокНаКонецРегл > 0, ОстатокНаКонецРегл, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтРегл = ?(ОстатокНаКонецРегл < 0, -ОстатокНаКонецРегл, 0);

// --- {
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтрРегл = ?(ОстатокНаКонецКонтрРегл > 0, ОстатокНаКонецКонтрРегл, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтрРегл = ?(ОстатокНаКонецКонтрРегл < 0, -ОстатокНаКонецКонтрРегл, 0);
// --- }
КонецЕсли;

ТабДок.Вывести(ОбластьКонОстатки);

// Результаты сверки
  Если НЕ ЗначениеЗаполнено(КонецПериода) Тогда
        РезультатыСверки = "<не указана дата сверки>";
    ИначеЕсли НЕ ЗначениеЗаполнено(Контрагент) Тогда
        РезультатыСверки = "<не указан контрагент>";
    Иначе
РезультатыСверки = "на " + Формат(КонецПериода, "ДФ=dd.MM.yyyy") + " задолженность ";

    Если ОстатокНаКонец > 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НазваниеОрганизации) + " "
+ Формат(ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(ВалютаДокумента)
+" ("+ФормированиеПечатныхФорм.ФорматироватьСуммуПрописьюПлатежногоДокумента(ОстатокНаКонец, ВалютаДокумента,Ложь)+")" ;

    ИначеЕсли ОстатокНаКонец < 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НаименованиеКонтрагента) + " "
+ Формат(-ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(ВалютаДокумента)
+" ("+ФормированиеПечатныхФорм.ФорматироватьСуммуПрописьюПлатежногоДокумента(-ОстатокНаКонец, ВалютаДокумента,Ложь)+")" ;

    Иначе
    РезультатыСверки = РезультатыСверки + "отсутствует.";
    КонецЕсли;
КонецЕсли;
ОбластьПодвал.Параметры.РезультатыСверки = РезультатыСверки;

Если Расхождение<>0 Тогда                                                                                                                                                                                                                                                               
ИтогСверки = "В результате сверки выявлено расхождение информации о состоянии расчетов в размере "
+Формат(?(Расхождение>0,1,-1)*Расхождение, "ЧЦ=21; ЧДЦ=2")
+" "+ Строка(ВалютаДокумента)
+" ("+ФормированиеПечатныхФорм.ФорматироватьСуммуПрописьюПлатежногоДокумента(?(Расхождение>0,1,-1)*Расхождение, ВалютаДокумента,Ложь)+")" ;
ОбластьПодвал.Параметры.ИтогСверки = Символы.ПС+ ИтогСверки+Символы.ПС+" ";
КонецЕсли;
             
ОбластьПодвал.Параметры.НазваниеОрганизации = СокрЛП(НазваниеОрганизации);
ОбластьПодвал.Параметры.НаименованиеКонтрагента = СокрЛП(НаименованиеКонтрагента);

ОбластьПодвал.Параметры.Должность = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),"________________",ДанныеПредставителяОрганизации.Должность);
ОбластьПодвал.Параметры.ДолжностьК = ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента.Должность),"________________",ПредставительКонтрагента.Должность);

ОбластьПодвал.Параметры.ФИОПредставителя  = "("+?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации),"_______________________",ДанныеПредставителяОрганизации.Представление)+")";
ОбластьПодвал.Параметры.ФИОПредставителяК = "("+?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента),"_______________________",ПроцедурыУправленияПерсоналом.ФамилияИнициалыФизЛица(ПредставительКонтрагента.Фамилия + " " + ПредставительКонтрагента.Имя + " " + ПредставительКонтрагента.Отчество))+")";

ТабДок.Вывести(ОбластьПодвал);

Если ЭлементыФормы.ДействияФормы.Кнопки.ПометкаТолькоЧтение.Пометка Тогда
ТабДок.ТолькоПросмотр = Истина;
КонецЕсли;

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


sitash

там есть ячейки которые лишне и ячейки клиента сдвинулись. я вам отправляю два файла. один с учетом договор и другой без учета договоров. заранее спасибо. удачи.

Дмитрий@

Попробуйте этот код, лишняя строка должна убраться
Процедура Печать(ТабДок)

ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов_АктСверки";
Макет  = ПолучитьМакет("Макет");
Приставка = "";
Если ВыводитьСРегламентом Тогда
Приставка = "Регл";
КонецЕсли;

ОбластьЗаголовок    = Макет.ПолучитьОбласть("Заголовок");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьНачОстатки   = Макет.ПолучитьОбласть("НачОстатки"+Приставка);
ОбластьНачОстаткиД  = Макет.ПолучитьОбласть("НачОстаткиДоговор"+Приставка);
ОбластьДоговор      = Макет.ПолучитьОбласть("Договор");
ОбластьДоговорИтоги = Макет.ПолучитьОбласть("ДоговорИтоги"+Приставка);
ОбластьОбороты      = Макет.ПолучитьОбласть("Обороты"+Приставка);
ОбластьОборотыИтог  = Макет.ПолучитьОбласть("ОборотыИтог"+Приставка);
ОбластьКонОстатки   = Макет.ПолучитьОбласть("КонОстатки"+Приставка);
ОбластьКонОстаткиД  = Макет.ПолучитьОбласть("КонОстаткиДоговор"+Приставка);
ОбластьПодвал       = Макет.ПолучитьОбласть("Подвал");

НазваниеОрганизации = Организация.НаименованиеПолное;
Если ПустаяСтрока(НазваниеОрганизации) Тогда
НазваниеОрганизации = Организация;
КонецЕсли;

НаименованиеКонтрагента = Контрагент.НаименованиеПолное;
Если ПустаяСтрока(НаименованиеКонтрагента) Тогда
НаименованиеКонтрагента = Контрагент;
КонецЕсли;

ОписаниеПериода = "за период: " + ПредставлениеПериода(НачалоДня(НачалоПериода), КонецДня(КонецПериода), "ФП = Истина");

ТекстЗаголовка = "взаимных расчетов " + ОписаниеПериода  + Символы.ПС
+ "между " + НазваниеОрганизации + Символы.ПС + "и " + НаименованиеКонтрагента;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
    ТекстЗаголовка = ТекстЗаголовка + Символы.ПС + "по договору " + СокрЛП(ДоговорКонтрагента.Наименование);
КонецЕсли;
ОбластьЗаголовок.Параметры.ТекстЗаголовка = ТекстЗаголовка;

ДанныеПредставителяОрганизации = ОбщегоНазначения.ДанныеФизЛица(Организация, ПредставительОрганизации, КонецПериода);
ФИОПредставителя = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Фамилия),"",ДанныеПредставителяОрганизации.Фамилия
+ ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Имя),""," "+ДанныеПредставителяОрганизации.Имя)
+ ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Отчество),""," "+ДанныеПредставителяОрганизации.Отчество));

СтрЗаголовокТаблица = "Мы, нижеподписавшиеся, " + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),"________________",ДанныеПредставителяОрганизации.Должность) + " " + НазваниеОрганизации
+ " " + ?(ФИОПредставителя<>"",ФИОПредставителя,"_______________________") + ", с одной стороны, "
+ "и " + ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента.Должность),"________________",ПредставительКонтрагента.Должность) + " " + НаименованиеКонтрагента + " "
+ ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента),"_______________________",ПредставительКонтрагента) + ", с другой стороны, "
+ "составили настоящий акт сверки в том, что состояние взаимных расчетов по данным учета следующее:";

ОбластьЗаголовок.Параметры.СтрЗаголовокТаблица = СтрЗаголовокТаблица;

ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);

ОбластьШапкаТаблицы.Параметры.НазваниеОрганизации = НазваниеОрганизации;
ОбластьШапкаТаблицы.Параметры.НаименованиеКонтрагента = НаименованиеКонтрагента;
ОбластьШапкаТаблицы.Параметры.ВалютаДокумента = ВалютаДокумента;
ТабДок.Вывести(ОбластьШапкаТаблицы);

ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДт = ?(ОстатокНаНачало > 0, ОстатокНаНачало, 0);
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКт = ?(ОстатокНаНачало < 0, -ОстатокНаНачало, 0);
Если ВыводитьСРегламентом Тогда
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДтРегл = ?(ОстатокНаНачалоРегл > 0, ОстатокНаНачалоРегл, 0);
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКтРегл = ?(ОстатокНаНачалоРегл < 0, -ОстатокНаНачалоРегл, 0);
КонецЕсли;

ТабДок.Вывести(ОбластьНачОстатки);

ОборотыДт = 0;
ОборотыКт = 0;
ОборотыДтКонтр = 0;
ОборотыКтКонтр = 0;

ОборотыДтРегл = 0;
ОборотыКтРегл = 0;
ОборотыДтКонтрРегл = 0;
ОборотыКтКонтрРегл = 0;

Если ПоДаннымОрганизации.Количество()>0 ИЛИ ПоДаннымКонтрагента.Количество()>0 Тогда

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПоДаннымОрганизации", ПоДаннымОрганизации.Выгрузить());
Запрос.УстановитьПараметр("ПоДаннымКонтрагента", ПоДаннымКонтрагента.Выгрузить());
Запрос.УстановитьПараметр("АктСверкиВзаиморасчетовОстаткиПоДоговорам", ОстаткиПоДоговорам.Выгрузить());
Запрос.Текст =
"ВЫБРАТЬ
| ПоДаннымОрганизации.Дата,
| ПоДаннымОрганизации.Договор,
| ПоДаннымОрганизации.Дебет,
| ПоДаннымОрганизации.Кредит,
| ПоДаннымОрганизации.ДебетРегл,
| ПоДаннымОрганизации.КредитРегл,
| ПоДаннымОрганизации.Представление,
| ПоДаннымОрганизации.Документ
|ПОМЕСТИТЬ ВТ_ПоДаннымОрганизации
|ИЗ
| &ПоДаннымОрганизации КАК ПоДаннымОрганизации
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПоДаннымКонтрагента.Дата,
| ПоДаннымКонтрагента.Договор,
| ПоДаннымКонтрагента.Дебет,
| ПоДаннымКонтрагента.Кредит,
| ПоДаннымКонтрагента.ДебетРегл,
| ПоДаннымКонтрагента.КредитРегл,
| ПоДаннымКонтрагента.Представление
|ПОМЕСТИТЬ ВТ_ПоДаннымКонтрагента
|ИЗ
| &ПоДаннымКонтрагента КАК ПоДаннымКонтрагента
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| АктСверкиВзаиморасчетовОстаткиПоДоговорам.Договор,
| АктСверкиВзаиморасчетовОстаткиПоДоговорам.Остаток,
| АктСверкиВзаиморасчетовОстаткиПоДоговорам.ОстатокРегл
|ПОМЕСТИТЬ ОстаткиПоДоговорам
|ИЗ
| &АктСверкиВзаиморасчетовОстаткиПоДоговорам КАК АктСверкиВзаиморасчетовОстаткиПоДоговорам
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЕСТЬNULL(ДанныеСДокумента.Договор, ОстаткиПоДоговорам.Договор) КАК Договор,
| ДанныеСДокумента.Дата КАК Дата,
| ДанныеСДокумента.ДатаК КАК ДатаК,
| ДанныеСДокумента.Докумет КАК Документ,
| ДанныеСДокумента.Представление КАК Представление,
| ДанныеСДокумента.ПредставлениеК КАК ПредставлениеК,
| ЕСТЬNULL(ДанныеСДокумента.Дебет, 0) КАК СуммаДогДт,
| ЕСТЬNULL(ДанныеСДокумента.Кредит, 0) КАК СуммаДогКт,
| ЕСТЬNULL(ДанныеСДокумента.ДебетК, 0) КАК СуммаДогДтКонтр,
| ЕСТЬNULL(ДанныеСДокумента.КредитК, 0) КАК СуммаДогКтКонтр,
| ЕСТЬNULL(ДанныеСДокумента.ДебетРегл, 0) КАК СуммаДогДтРегл,
| ЕСТЬNULL(ДанныеСДокумента.КредитРегл, 0) КАК СуммаДогКтРегл,
| ЕСТЬNULL(ДанныеСДокумента.ДебетКРегл, 0) КАК СуммаДогДтКонтрРегл,
| ЕСТЬNULL(ДанныеСДокумента.КредитКРегл, 0) КАК СуммаДогКтКонтрРегл,
| ЕСТЬNULL(ОстаткиПоДоговорам.Остаток, 0) КАК Остаток,
| ЕСТЬNULL(ОстаткиПоДоговорам.ОстатокРегл, 0) КАК ОстатокРегл
|ИЗ
| (ВЫБРАТЬ
| ОстаткиПоДоговорам.Договор КАК Договор,
| ОстаткиПоДоговорам.Остаток КАК Остаток,
| ОстаткиПоДоговорам.ОстатокРегл КАК ОстатокРегл
| ИЗ
| ОстаткиПоДоговорам КАК ОстаткиПоДоговорам) КАК ОстаткиПоДоговорам
| ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ВТ_ПоДаннымОрганизации.Договор КАК Договор,
| ВТ_ПоДаннымОрганизации.Дата КАК Дата,
| NULL КАК ДатаК,
| ВТ_ПоДаннымОрганизации.Документ КАК Докумет,
| ВТ_ПоДаннымОрганизации.Представление КАК Представление,
| NULL КАК ПредставлениеК,
| ВТ_ПоДаннымОрганизации.Дебет КАК Дебет,
| ВТ_ПоДаннымОрганизации.Кредит КАК Кредит,
| 0 КАК ДебетК,
| 0 КАК КредитК,
| ВТ_ПоДаннымОрганизации.ДебетРегл КАК ДебетРегл,
| ВТ_ПоДаннымОрганизации.КредитРегл КАК КредитРегл,
| 0 КАК ДебетКРегл,
| 0 КАК КредитКРегл
| ИЗ
| ВТ_ПоДаннымОрганизации КАК ВТ_ПоДаннымОрганизации
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВТ_ПоДаннымКонтрагента.Договор,
| "+?(РазбитьПоДоговорам,"NULL,","ВТ_ПоДаннымКонтрагента.Дата,") + "
| ВТ_ПоДаннымКонтрагента.Дата,
| NULL,
| NULL,
| ВТ_ПоДаннымКонтрагента.Представление,
| 0,
| 0,
| ВТ_ПоДаннымКонтрагента.Дебет,
| ВТ_ПоДаннымКонтрагента.Кредит,
| 0,
| 0,
| ВТ_ПоДаннымКонтрагента.ДебетРегл,
| ВТ_ПоДаннымКонтрагента.КредитРегл
| ИЗ
| ВТ_ПоДаннымКонтрагента КАК ВТ_ПоДаннымКонтрагента) КАК ДанныеСДокумента
| ПО ОстаткиПоДоговорам.Договор = ДанныеСДокумента.Договор
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| ДатаК
|ИТОГИ
| СУММА(СуммаДогДт),
| СУММА(СуммаДогКт),
| СУММА(СуммаДогДтКонтр),
| СУММА(СуммаДогКтКонтр),
| СУММА(СуммаДогДтРегл),
| СУММА(СуммаДогКтРегл),
| СУММА(СуммаДогДтКонтрРегл),
| СУММА(СуммаДогКтКонтрРегл),
| МАКСИМУМ(Остаток),
| МАКСИМУМ(ОстатокРегл)
|ПО
| ОБЩИЕ "+?(Не РазбитьПоДоговорам,""," ,
| Договор");

Результат = Запрос.Выполнить();

ОбходПоОбщимИтогам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Общие");
ОбходПоОбщимИтогам.Следующий();

ОборотыДт = ОбходПоОбщимИтогам.СуммаДогДт;
ОборотыКт = ОбходПоОбщимИтогам.СуммаДогКт;
ОборотыДтКонтр = ОбходПоОбщимИтогам.СуммаДогДтКонтр;
ОборотыКтКонтр = ОбходПоОбщимИтогам.СуммаДогКтКонтр;

ОборотыДтРегл = ОбходПоОбщимИтогам.СуммаДогДтРегл;
ОборотыКтРегл = ОбходПоОбщимИтогам.СуммаДогКтРегл;
ОборотыДтКонтрРегл = ОбходПоОбщимИтогам.СуммаДогДтКонтрРегл;
ОборотыКтКонтрРегл = ОбходПоОбщимИтогам.СуммаДогКтКонтрРегл;

ОстаткиНаКонецД = новый Соответствие;
Если РазбитьПоДоговорам Тогда
ОбходПоДоговорам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Договор");
Пока ОбходПоДоговорам.Следующий() Цикл
Если РазбитьПоДоговорам Тогда
//Выводим заголовок с договором
ОбластьДоговор.Параметры.Договор = ОбходПоДоговорам.Договор;
ОбластьДоговор.Параметры.Регистратор = ОбходПоДоговорам.Договор;
ТабДок.Вывести(ОбластьДоговор);
//Определим сальдо по договору
Если ОбходПоДоговорам.Количество() > 1 Тогда // если договор 1 то общее сальдо уже и есть сальдо по договору.
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокДт = ?(ОбходПоДоговорам.Остаток > 0, ОбходПоДоговорам.Остаток, 0);
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокКт = ?(ОбходПоДоговорам.Остаток < 0, -ОбходПоДоговорам.Остаток, 0);
Если ВыводитьСРегламентом Тогда
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокДтРегл = ?(ОбходПоДоговорам.ОстатокРегл > 0, ОбходПоДоговорам.ОстатокРегл, 0);
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокКтРегл = ?(ОбходПоДоговорам.ОстатокРегл < 0, -ОбходПоДоговорам.ОстатокРегл, 0);
КонецЕсли;
ОстаткиНаКонецД.Вставить(ОбходПоДоговорам.Договор, новый Структура("Остаток, ОстатокРегл", ОбходПоДоговорам.Остаток, ОбходПоДоговорам.ОстатокРегл));
ТабДок.Вывести(ОбластьНачОстаткиД);
КонецЕсли;
ОбходПоДокументам = ОбходПоДоговорам.Выбрать();
Иначе
ОбходПоДокументам = Результат.Выбрать();
КонецЕсли;

//Создадим список документов по организации и контрагенту
СписокДокументов = новый массив;
СписокДокументовК = новый массив;
Пока ОбходПоДокументам.Следующий() Цикл
Если ОбходПоДокументам.Дата<>NULL Тогда
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл",
ОбходПоДокументам.Дата,ОбходПоДокументам.Представление,ОбходПоДокументам.Документ,ОбходПоДокументам.СуммаДогДт,ОбходПоДокументам.СуммаДогКт,ОбходПоДокументам.СуммаДогДтРегл,ОбходПоДокументам.СуммаДогКтРегл));
КонецЕсли;

Если ОбходПоДокументам.ДатаК<>NULL Тогда
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл",
ОбходПоДокументам.ДатаК,ОбходПоДокументам.ПредставлениеК,ОбходПоДокументам.СуммаДогДтКонтр,ОбходПоДокументам.СуммаДогКтКонтр,ОбходПоДокументам.СуммаДогДтКонтрРегл,ОбходПоДокументам.СуммаДогКтКонтрРегл));
КонецЕсли;
КонецЦикла;

//Для упрощения вывода, сравним списки по количеству элементов, добавив пустые
МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
Если СписокДокументов.Количество()<СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл","","","","","","",""));
КонецЦикла;
ИначеЕсли СписокДокументов.Количество()>СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл","","","","","",""));
КонецЦикла;
КонецЕсли;

Для Инд = 0 По МаксИндекс Цикл
ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]);
ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]);
ТабДок.Вывести(ОбластьОбороты);
КонецЦикла;

Если РазбитьПоДоговорам и ОбходПоДоговорам.Количество() > 1 Тогда
//Выводим итоги по каждому договору
ОбластьДоговорИтоги.Параметры.Заполнить(ОбходПоДоговорам);
ТабДок.Вывести(ОбластьДоговорИтоги);

ОстатокНаКонецД = ОбходПоДоговорам.Остаток + ОбходПоДоговорам.СуммаДогДт -  ОбходПоДоговорам.СуммаДогКт;
ОстатокНаКонецДРегл = ОбходПоДоговорам.ОстатокРегл + ОбходПоДоговорам.СуммаДогДтРегл -  ОбходПоДоговорам.СуммаДогКтРегл;

// --- {
ОстатокНаКонецДКонтр = - ОбходПоДоговорам.Остаток + ОбходПоДоговорам.СуммаДогДтКонтр - ОбходПоДоговорам.СуммаДогКТКонтр;
ОстатокНаКонецДКонтрРегл = - ОбходПоДоговорам.ОстатокРегл + ОбходПоДоговорам.СуммаДогДтКонтрРегл - ОбходПоДоговорам.СуммаДогКТКонтрРегл;
// --- }

ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДт = ?(ОстатокНаКонецД > 0, ОстатокНаКонецД, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКт = ?(ОстатокНаКонецД < 0, -ОстатокНаКонецД, 0);

// --- {
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДтКонтр = ?(ОстатокНаКонецДКонтр > 0, ОстатокНаКонецДКонтр, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКтКонтр = ?(ОстатокНаКонецДКонтр < 0, -ОстатокНаКонецДКонтр, 0);
// --- }

Если ВыводитьСРегламентом Тогда
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДтРегл = ?(ОстатокНаКонецДРегл > 0, ОстатокНаКонецДРегл, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКтРегл = ?(ОстатокНаКонецДРегл < 0, -ОстатокНаКонецДРегл, 0);

// --- {
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДтКонтрРегл = ?(ОстатокНаКонецДКонтрРегл > 0, ОстатокНаКонецДКонтрРегл, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКтКонтрРегл = ?(ОстатокНаКонецДКонтрРегл < 0, -ОстатокНаКонецДКонтрРегл, 0);
// --- }
КонецЕсли;

ТабДок.Вывести(ОбластьКонОстаткиД);

Иначе
Прервать;
КонецЕсли;

КонецЦикла;

Иначе

ОбходПоДокументам = ОбходПоОбщимИтогам.Выбрать();
//Создадим список документов по организации и контрагенту
СписокДокументов = новый массив;
СписокДокументовК = новый массив;
Пока ОбходПоДокументам.Следующий() Цикл
Если ОбходПоДокументам.ДатаК=NULL Тогда
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл",
ОбходПоДокументам.Дата,ОбходПоДокументам.Представление,ОбходПоДокументам.Документ,ОбходПоДокументам.СуммаДогДт,ОбходПоДокументам.СуммаДогКт,ОбходПоДокументам.СуммаДогДтРегл,ОбходПоДокументам.СуммаДогКтРегл));
КонецЕсли;

Если ОбходПоДокументам.ДатаК<>NULL Тогда
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл",
ОбходПоДокументам.ДатаК,ОбходПоДокументам.ПредставлениеК,ОбходПоДокументам.СуммаДогДтКонтр,ОбходПоДокументам.СуммаДогКтКонтр,ОбходПоДокументам.СуммаДогДтКонтрРегл,ОбходПоДокументам.СуммаДогКтКонтрРегл));
КонецЕсли;
КонецЦикла;

//Для упрощения вывода, сравним списки по количеству элементов, добавив пустые
МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
Если СписокДокументов.Количество()<СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл","","","","","","",""));
КонецЦикла;
ИначеЕсли СписокДокументов.Количество()>СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл","","","","","",""));
КонецЦикла;
КонецЕсли;

Для Инд = 0 По МаксИндекс Цикл
ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]);
ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]);
ТабДок.Вывести(ОбластьОбороты);
КонецЦикла;


КонецЕсли;

ОбластьОборотыИтог.Параметры.СуммаОборотДт      = ОборотыДт;
ОбластьОборотыИтог.Параметры.СуммаОборотКт      = ОборотыКт;

// --- {
ОбластьОборотыИтог.Параметры.СуммаОборотДтКонтр = ОборотыДтКонтр;
ОбластьОборотыИтог.Параметры.СуммаОборотКтКонтр = ОборотыКтКонтр;
// --- }
Если ВыводитьСРегламентом Тогда
ОбластьОборотыИтог.Параметры.СуммаОборотДтРегл = ОборотыДтРегл;
ОбластьОборотыИтог.Параметры.СуммаОборотКтРегл = ОборотыКтРегл;

// --- {
ОбластьОборотыИтог.Параметры.СуммаОборотДтКонтрРегл = ОборотыДтКонтрРегл;
ОбластьОборотыИтог.Параметры.СуммаОборотКтКонтрРегл = ОборотыКтКонтрРегл;
// --- }
КонецЕсли;

ТабДок.Вывести(ОбластьОборотыИтог);

КонецЕсли;
     
ОстатокНаКонец = ОстатокНаНачало + ОборотыДт - ОборотыКт;
ОстатокНаКонецРегл = ОстатокНаНачалоРегл + ОборотыДтРегл - ОборотыКтРегл;

ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДт = ?(ОстатокНаКонец > 0, ОстатокНаКонец, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКт = ?(ОстатокНаКонец < 0, -ОстатокНаКонец, 0);

// --- {
ОстатокНаКонецКонтр = ОстатокНаКонецКонтрагент;
ОстатокНаКонецКонтрРегл = ОстатокНаКонецКонтрагентРегл;

ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтр = ?(ОстатокНаКонецКонтр > 0, ОстатокНаКонецКонтр, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтр = ?(ОстатокНаКонецКонтр < 0, -ОстатокНаКонецКонтр, 0);
// --- }

Если ВыводитьСРегламентом Тогда
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтРегл = ?(ОстатокНаКонецРегл > 0, ОстатокНаКонецРегл, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтРегл = ?(ОстатокНаКонецРегл < 0, -ОстатокНаКонецРегл, 0);

// --- {
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтрРегл = ?(ОстатокНаКонецКонтрРегл > 0, ОстатокНаКонецКонтрРегл, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтрРегл = ?(ОстатокНаКонецКонтрРегл < 0, -ОстатокНаКонецКонтрРегл, 0);
// --- }
КонецЕсли;

ТабДок.Вывести(ОбластьКонОстатки);

// Результаты сверки
  Если НЕ ЗначениеЗаполнено(КонецПериода) Тогда
        РезультатыСверки = "<не указана дата сверки>";
    ИначеЕсли НЕ ЗначениеЗаполнено(Контрагент) Тогда
        РезультатыСверки = "<не указан контрагент>";
    Иначе
РезультатыСверки = "на " + Формат(КонецПериода, "ДФ=dd.MM.yyyy") + " задолженность ";

    Если ОстатокНаКонец > 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НазваниеОрганизации) + " "
+ Формат(ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(ВалютаДокумента)
+" ("+ФормированиеПечатныхФорм.ФорматироватьСуммуПрописьюПлатежногоДокумента(ОстатокНаКонец, ВалютаДокумента,Ложь)+")" ;

    ИначеЕсли ОстатокНаКонец < 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НаименованиеКонтрагента) + " "
+ Формат(-ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(ВалютаДокумента)
+" ("+ФормированиеПечатныхФорм.ФорматироватьСуммуПрописьюПлатежногоДокумента(-ОстатокНаКонец, ВалютаДокумента,Ложь)+")" ;

    Иначе
    РезультатыСверки = РезультатыСверки + "отсутствует.";
    КонецЕсли;
КонецЕсли;
ОбластьПодвал.Параметры.РезультатыСверки = РезультатыСверки;

Если Расхождение<>0 Тогда                                                                                                                                                                                                                                                               
ИтогСверки = "В результате сверки выявлено расхождение информации о состоянии расчетов в размере "
+Формат(?(Расхождение>0,1,-1)*Расхождение, "ЧЦ=21; ЧДЦ=2")
+" "+ Строка(ВалютаДокумента)
+" ("+ФормированиеПечатныхФорм.ФорматироватьСуммуПрописьюПлатежногоДокумента(?(Расхождение>0,1,-1)*Расхождение, ВалютаДокумента,Ложь)+")" ;
ОбластьПодвал.Параметры.ИтогСверки = Символы.ПС+ ИтогСверки+Символы.ПС+" ";
КонецЕсли;
             
ОбластьПодвал.Параметры.НазваниеОрганизации = СокрЛП(НазваниеОрганизации);
ОбластьПодвал.Параметры.НаименованиеКонтрагента = СокрЛП(НаименованиеКонтрагента);

ОбластьПодвал.Параметры.Должность = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),"________________",ДанныеПредставителяОрганизации.Должность);
ОбластьПодвал.Параметры.ДолжностьК = ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента.Должность),"________________",ПредставительКонтрагента.Должность);

ОбластьПодвал.Параметры.ФИОПредставителя  = "("+?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации),"_______________________",ДанныеПредставителяОрганизации.Представление)+")";
ОбластьПодвал.Параметры.ФИОПредставителяК = "("+?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента),"_______________________",ПроцедурыУправленияПерсоналом.ФамилияИнициалыФизЛица(ПредставительКонтрагента.Фамилия + " " + ПредставительКонтрагента.Имя + " " + ПредставительКонтрагента.Отчество))+")";

ТабДок.Вывести(ОбластьПодвал);

Если ЭлементыФормы.ДействияФормы.Кнопки.ПометкаТолькоЧтение.Пометка Тогда
ТабДок.ТолькоПросмотр = Истина;
КонецЕсли;

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

sitash

надеюсь еще не достал. клиентская часть отчета на две ячейки выше чем наша часть отчета. надо будет поднять нашу часть отчета и тогда все будет как хотелось. спасибо вам за помощь и внимание.

Дмитрий@

Попробуйте этот код
Процедура Печать(ТабДок)

ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов_АктСверки";
Макет  = ПолучитьМакет("Макет");
Приставка = "";
Если ВыводитьСРегламентом Тогда
Приставка = "Регл";
КонецЕсли;

ОбластьЗаголовок    = Макет.ПолучитьОбласть("Заголовок");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьНачОстатки   = Макет.ПолучитьОбласть("НачОстатки"+Приставка);
ОбластьНачОстаткиД  = Макет.ПолучитьОбласть("НачОстаткиДоговор"+Приставка);
ОбластьДоговор      = Макет.ПолучитьОбласть("Договор");
ОбластьДоговорИтоги = Макет.ПолучитьОбласть("ДоговорИтоги"+Приставка);
ОбластьОбороты      = Макет.ПолучитьОбласть("Обороты"+Приставка);
ОбластьОборотыИтог  = Макет.ПолучитьОбласть("ОборотыИтог"+Приставка);
ОбластьКонОстатки   = Макет.ПолучитьОбласть("КонОстатки"+Приставка);
ОбластьКонОстаткиД  = Макет.ПолучитьОбласть("КонОстаткиДоговор"+Приставка);
ОбластьПодвал       = Макет.ПолучитьОбласть("Подвал");

НазваниеОрганизации = Организация.НаименованиеПолное;
Если ПустаяСтрока(НазваниеОрганизации) Тогда
НазваниеОрганизации = Организация;
КонецЕсли;

НаименованиеКонтрагента = Контрагент.НаименованиеПолное;
Если ПустаяСтрока(НаименованиеКонтрагента) Тогда
НаименованиеКонтрагента = Контрагент;
КонецЕсли;

ОписаниеПериода = "за период: " + ПредставлениеПериода(НачалоДня(НачалоПериода), КонецДня(КонецПериода), "ФП = Истина");

ТекстЗаголовка = "взаимных расчетов " + ОписаниеПериода  + Символы.ПС
+ "между " + НазваниеОрганизации + Символы.ПС + "и " + НаименованиеКонтрагента;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
    ТекстЗаголовка = ТекстЗаголовка + Символы.ПС + "по договору " + СокрЛП(ДоговорКонтрагента.Наименование);
КонецЕсли;
ОбластьЗаголовок.Параметры.ТекстЗаголовка = ТекстЗаголовка;

ДанныеПредставителяОрганизации = ОбщегоНазначения.ДанныеФизЛица(Организация, ПредставительОрганизации, КонецПериода);
ФИОПредставителя = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Фамилия),"",ДанныеПредставителяОрганизации.Фамилия
+ ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Имя),""," "+ДанныеПредставителяОрганизации.Имя)
+ ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Отчество),""," "+ДанныеПредставителяОрганизации.Отчество));

СтрЗаголовокТаблица = "Мы, нижеподписавшиеся, " + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),"________________",ДанныеПредставителяОрганизации.Должность) + " " + НазваниеОрганизации
+ " " + ?(ФИОПредставителя<>"",ФИОПредставителя,"_______________________") + ", с одной стороны, "
+ "и " + ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента.Должность),"________________",ПредставительКонтрагента.Должность) + " " + НаименованиеКонтрагента + " "
+ ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента),"_______________________",ПредставительКонтрагента) + ", с другой стороны, "
+ "составили настоящий акт сверки в том, что состояние взаимных расчетов по данным учета следующее:";

ОбластьЗаголовок.Параметры.СтрЗаголовокТаблица = СтрЗаголовокТаблица;

ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);

ОбластьШапкаТаблицы.Параметры.НазваниеОрганизации = НазваниеОрганизации;
ОбластьШапкаТаблицы.Параметры.НаименованиеКонтрагента = НаименованиеКонтрагента;
ОбластьШапкаТаблицы.Параметры.ВалютаДокумента = ВалютаДокумента;
ТабДок.Вывести(ОбластьШапкаТаблицы);

ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДт = ?(ОстатокНаНачало > 0, ОстатокНаНачало, 0);
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКт = ?(ОстатокНаНачало < 0, -ОстатокНаНачало, 0);
Если ВыводитьСРегламентом Тогда
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДтРегл = ?(ОстатокНаНачалоРегл > 0, ОстатокНаНачалоРегл, 0);
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКтРегл = ?(ОстатокНаНачалоРегл < 0, -ОстатокНаНачалоРегл, 0);
КонецЕсли;

ТабДок.Вывести(ОбластьНачОстатки);

ОборотыДт = 0;
ОборотыКт = 0;
ОборотыДтКонтр = 0;
ОборотыКтКонтр = 0;

ОборотыДтРегл = 0;
ОборотыКтРегл = 0;
ОборотыДтКонтрРегл = 0;
ОборотыКтКонтрРегл = 0;

Если ПоДаннымОрганизации.Количество()>0 ИЛИ ПоДаннымКонтрагента.Количество()>0 Тогда

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПоДаннымОрганизации", ПоДаннымОрганизации.Выгрузить());
Запрос.УстановитьПараметр("ПоДаннымКонтрагента", ПоДаннымКонтрагента.Выгрузить());
Запрос.УстановитьПараметр("АктСверкиВзаиморасчетовОстаткиПоДоговорам", ОстаткиПоДоговорам.Выгрузить());
Запрос.Текст =
"ВЫБРАТЬ
| ПоДаннымОрганизации.Дата,
| ПоДаннымОрганизации.Договор,
| ПоДаннымОрганизации.Дебет,
| ПоДаннымОрганизации.Кредит,
| ПоДаннымОрганизации.ДебетРегл,
| ПоДаннымОрганизации.КредитРегл,
| ПоДаннымОрганизации.Представление,
| ПоДаннымОрганизации.Документ
|ПОМЕСТИТЬ ВТ_ПоДаннымОрганизации
|ИЗ
| &ПоДаннымОрганизации КАК ПоДаннымОрганизации
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПоДаннымКонтрагента.Дата,
| ПоДаннымКонтрагента.Договор,
| ПоДаннымКонтрагента.Дебет,
| ПоДаннымКонтрагента.Кредит,
| ПоДаннымКонтрагента.ДебетРегл,
| ПоДаннымКонтрагента.КредитРегл,
| ПоДаннымКонтрагента.Представление
|ПОМЕСТИТЬ ВТ_ПоДаннымКонтрагента
|ИЗ
| &ПоДаннымКонтрагента КАК ПоДаннымКонтрагента
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| АктСверкиВзаиморасчетовОстаткиПоДоговорам.Договор,
| АктСверкиВзаиморасчетовОстаткиПоДоговорам.Остаток,
| АктСверкиВзаиморасчетовОстаткиПоДоговорам.ОстатокРегл
|ПОМЕСТИТЬ ОстаткиПоДоговорам
|ИЗ
| &АктСверкиВзаиморасчетовОстаткиПоДоговорам КАК АктСверкиВзаиморасчетовОстаткиПоДоговорам
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЕСТЬNULL(ДанныеСДокумента.Договор, ОстаткиПоДоговорам.Договор) КАК Договор,
| ДанныеСДокумента.Дата КАК Дата,
| ДанныеСДокумента.ДатаК КАК ДатаК,
| ДанныеСДокумента.Докумет КАК Документ,
| ДанныеСДокумента.Представление КАК Представление,
| ДанныеСДокумента.ПредставлениеК КАК ПредставлениеК,
| ЕСТЬNULL(ДанныеСДокумента.Дебет, 0) КАК СуммаДогДт,
| ЕСТЬNULL(ДанныеСДокумента.Кредит, 0) КАК СуммаДогКт,
| ЕСТЬNULL(ДанныеСДокумента.ДебетК, 0) КАК СуммаДогДтКонтр,
| ЕСТЬNULL(ДанныеСДокумента.КредитК, 0) КАК СуммаДогКтКонтр,
| ЕСТЬNULL(ДанныеСДокумента.ДебетРегл, 0) КАК СуммаДогДтРегл,
| ЕСТЬNULL(ДанныеСДокумента.КредитРегл, 0) КАК СуммаДогКтРегл,
| ЕСТЬNULL(ДанныеСДокумента.ДебетКРегл, 0) КАК СуммаДогДтКонтрРегл,
| ЕСТЬNULL(ДанныеСДокумента.КредитКРегл, 0) КАК СуммаДогКтКонтрРегл,
| ЕСТЬNULL(ОстаткиПоДоговорам.Остаток, 0) КАК Остаток,
| ЕСТЬNULL(ОстаткиПоДоговорам.ОстатокРегл, 0) КАК ОстатокРегл
|ИЗ
| (ВЫБРАТЬ
| ОстаткиПоДоговорам.Договор КАК Договор,
| ОстаткиПоДоговорам.Остаток КАК Остаток,
| ОстаткиПоДоговорам.ОстатокРегл КАК ОстатокРегл
| ИЗ
| ОстаткиПоДоговорам КАК ОстаткиПоДоговорам) КАК ОстаткиПоДоговорам
| ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ВТ_ПоДаннымОрганизации.Договор КАК Договор,
| ВТ_ПоДаннымОрганизации.Дата КАК Дата,
| NULL КАК ДатаК,
| ВТ_ПоДаннымОрганизации.Документ КАК Докумет,
| ВТ_ПоДаннымОрганизации.Представление КАК Представление,
| NULL КАК ПредставлениеК,
| ВТ_ПоДаннымОрганизации.Дебет КАК Дебет,
| ВТ_ПоДаннымОрганизации.Кредит КАК Кредит,
| 0 КАК ДебетК,
| 0 КАК КредитК,
| ВТ_ПоДаннымОрганизации.ДебетРегл КАК ДебетРегл,
| ВТ_ПоДаннымОрганизации.КредитРегл КАК КредитРегл,
| 0 КАК ДебетКРегл,
| 0 КАК КредитКРегл
| ИЗ
| ВТ_ПоДаннымОрганизации КАК ВТ_ПоДаннымОрганизации
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВТ_ПоДаннымКонтрагента.Договор,
| "+?(РазбитьПоДоговорам,"NULL,","ВТ_ПоДаннымКонтрагента.Дата,") + "
| ВТ_ПоДаннымКонтрагента.Дата,
| NULL,
| NULL,
| ВТ_ПоДаннымКонтрагента.Представление,
| 0,
| 0,
| ВТ_ПоДаннымКонтрагента.Дебет,
| ВТ_ПоДаннымКонтрагента.Кредит,
| 0,
| 0,
| ВТ_ПоДаннымКонтрагента.ДебетРегл,
| ВТ_ПоДаннымКонтрагента.КредитРегл
| ИЗ
| ВТ_ПоДаннымКонтрагента КАК ВТ_ПоДаннымКонтрагента) КАК ДанныеСДокумента
| ПО ОстаткиПоДоговорам.Договор = ДанныеСДокумента.Договор
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| ДатаК
|ИТОГИ
| СУММА(СуммаДогДт),
| СУММА(СуммаДогКт),
| СУММА(СуммаДогДтКонтр),
| СУММА(СуммаДогКтКонтр),
| СУММА(СуммаДогДтРегл),
| СУММА(СуммаДогКтРегл),
| СУММА(СуммаДогДтКонтрРегл),
| СУММА(СуммаДогКтКонтрРегл),
| МАКСИМУМ(Остаток),
| МАКСИМУМ(ОстатокРегл)
|ПО
| ОБЩИЕ "+?(Не РазбитьПоДоговорам,""," ,
| Договор");

Результат = Запрос.Выполнить();

ОбходПоОбщимИтогам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Общие");
ОбходПоОбщимИтогам.Следующий();

ОборотыДт = ОбходПоОбщимИтогам.СуммаДогДт;
ОборотыКт = ОбходПоОбщимИтогам.СуммаДогКт;
ОборотыДтКонтр = ОбходПоОбщимИтогам.СуммаДогДтКонтр;
ОборотыКтКонтр = ОбходПоОбщимИтогам.СуммаДогКтКонтр;

ОборотыДтРегл = ОбходПоОбщимИтогам.СуммаДогДтРегл;
ОборотыКтРегл = ОбходПоОбщимИтогам.СуммаДогКтРегл;
ОборотыДтКонтрРегл = ОбходПоОбщимИтогам.СуммаДогДтКонтрРегл;
ОборотыКтКонтрРегл = ОбходПоОбщимИтогам.СуммаДогКтКонтрРегл;

ОстаткиНаКонецД = новый Соответствие;
Если РазбитьПоДоговорам Тогда
ОбходПоДоговорам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Договор");
Пока ОбходПоДоговорам.Следующий() Цикл
Если РазбитьПоДоговорам Тогда
//Выводим заголовок с договором
ОбластьДоговор.Параметры.Договор = ОбходПоДоговорам.Договор;
ОбластьДоговор.Параметры.Регистратор = ОбходПоДоговорам.Договор;
ТабДок.Вывести(ОбластьДоговор);
//Определим сальдо по договору
Если ОбходПоДоговорам.Количество() > 1 Тогда // если договор 1 то общее сальдо уже и есть сальдо по договору.
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокДт = ?(ОбходПоДоговорам.Остаток > 0, ОбходПоДоговорам.Остаток, 0);
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокКт = ?(ОбходПоДоговорам.Остаток < 0, -ОбходПоДоговорам.Остаток, 0);
Если ВыводитьСРегламентом Тогда
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокДтРегл = ?(ОбходПоДоговорам.ОстатокРегл > 0, ОбходПоДоговорам.ОстатокРегл, 0);
ОбластьНачОстаткиД.Параметры.СуммаНачальныйОстатокКтРегл = ?(ОбходПоДоговорам.ОстатокРегл < 0, -ОбходПоДоговорам.ОстатокРегл, 0);
КонецЕсли;
ОстаткиНаКонецД.Вставить(ОбходПоДоговорам.Договор, новый Структура("Остаток, ОстатокРегл", ОбходПоДоговорам.Остаток, ОбходПоДоговорам.ОстатокРегл));
ТабДок.Вывести(ОбластьНачОстаткиД);
КонецЕсли;
ОбходПоДокументам = ОбходПоДоговорам.Выбрать();
Иначе
ОбходПоДокументам = Результат.Выбрать();
КонецЕсли;

//Создадим список документов по организации и контрагенту
СписокДокументов = новый массив;
СписокДокументовК = новый массив;
Пока ОбходПоДокументам.Следующий() Цикл
Если ОбходПоДокументам.Дата<>NULL Тогда
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл",
ОбходПоДокументам.Дата,ОбходПоДокументам.Представление,ОбходПоДокументам.Документ,ОбходПоДокументам.СуммаДогДт,ОбходПоДокументам.СуммаДогКт,ОбходПоДокументам.СуммаДогДтРегл,ОбходПоДокументам.СуммаДогКтРегл));
КонецЕсли;

Если ОбходПоДокументам.ДатаК<>NULL Тогда
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл",
ОбходПоДокументам.ДатаК,ОбходПоДокументам.ПредставлениеК,ОбходПоДокументам.СуммаДогДтКонтр,ОбходПоДокументам.СуммаДогКтКонтр,ОбходПоДокументам.СуммаДогДтКонтрРегл,ОбходПоДокументам.СуммаДогКтКонтрРегл));
КонецЕсли;
КонецЦикла;

//Для упрощения вывода, сравним списки по количеству элементов, добавив пустые
МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
Если СписокДокументов.Количество()<СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл","","","","","","",""));
КонецЦикла;
ИначеЕсли СписокДокументов.Количество()>СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл","","","","","",""));
КонецЦикла;
КонецЕсли;

Для Инд = 0 По МаксИндекс Цикл
ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]);
ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]);
ТабДок.Вывести(ОбластьОбороты);
КонецЦикла;

Если РазбитьПоДоговорам и ОбходПоДоговорам.Количество() > 1 Тогда
//Выводим итоги по каждому договору
ОбластьДоговорИтоги.Параметры.Заполнить(ОбходПоДоговорам);
ТабДок.Вывести(ОбластьДоговорИтоги);

ОстатокНаКонецД = ОбходПоДоговорам.Остаток + ОбходПоДоговорам.СуммаДогДт -  ОбходПоДоговорам.СуммаДогКт;
ОстатокНаКонецДРегл = ОбходПоДоговорам.ОстатокРегл + ОбходПоДоговорам.СуммаДогДтРегл -  ОбходПоДоговорам.СуммаДогКтРегл;

// --- {
ОстатокНаКонецДКонтр = - ОбходПоДоговорам.Остаток + ОбходПоДоговорам.СуммаДогДтКонтр - ОбходПоДоговорам.СуммаДогКТКонтр;
ОстатокНаКонецДКонтрРегл = - ОбходПоДоговорам.ОстатокРегл + ОбходПоДоговорам.СуммаДогДтКонтрРегл - ОбходПоДоговорам.СуммаДогКТКонтрРегл;
// --- }

ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДт = ?(ОстатокНаКонецД > 0, ОстатокНаКонецД, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКт = ?(ОстатокНаКонецД < 0, -ОстатокНаКонецД, 0);

// --- {
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДтКонтр = ?(ОстатокНаКонецДКонтр > 0, ОстатокНаКонецДКонтр, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКтКонтр = ?(ОстатокНаКонецДКонтр < 0, -ОстатокНаКонецДКонтр, 0);
// --- }

Если ВыводитьСРегламентом Тогда
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДтРегл = ?(ОстатокНаКонецДРегл > 0, ОстатокНаКонецДРегл, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКтРегл = ?(ОстатокНаКонецДРегл < 0, -ОстатокНаКонецДРегл, 0);

// --- {
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокДтКонтрРегл = ?(ОстатокНаКонецДКонтрРегл > 0, ОстатокНаКонецДКонтрРегл, 0);
ОбластьКонОстаткиД.Параметры.СуммаКонечныйОстатокКтКонтрРегл = ?(ОстатокНаКонецДКонтрРегл < 0, -ОстатокНаКонецДКонтрРегл, 0);
// --- }
КонецЕсли;

ТабДок.Вывести(ОбластьКонОстаткиД);

Иначе
Прервать;
КонецЕсли;

КонецЦикла;

Иначе

ОбходПоДокументам = ОбходПоОбщимИтогам.Выбрать();
//Создадим список документов по организации и контрагенту
СписокДокументов = новый массив;
СписокДокументовК = новый массив;
Пока ОбходПоДокументам.Следующий() Цикл
Если ОбходПоДокументам.ДатаК=NULL И ОбходПоДокументам.Дата<>NULL Тогда
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл",
ОбходПоДокументам.Дата,ОбходПоДокументам.Представление,ОбходПоДокументам.Документ,ОбходПоДокументам.СуммаДогДт,ОбходПоДокументам.СуммаДогКт,ОбходПоДокументам.СуммаДогДтРегл,ОбходПоДокументам.СуммаДогКтРегл));
КонецЕсли;

Если ОбходПоДокументам.ДатаК<>NULL Тогда
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл",
ОбходПоДокументам.ДатаК,ОбходПоДокументам.ПредставлениеК,ОбходПоДокументам.СуммаДогДтКонтр,ОбходПоДокументам.СуммаДогКтКонтр,ОбходПоДокументам.СуммаДогДтКонтрРегл,ОбходПоДокументам.СуммаДогКтКонтрРегл));
КонецЕсли;
КонецЦикла;

//Для упрощения вывода, сравним списки по количеству элементов, добавив пустые
МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
Если СписокДокументов.Количество()<СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт,СуммаОборотДтРегл,СуммаОборотКтРегл","","","","","","",""));
КонецЦикла;
ИначеЕсли СписокДокументов.Количество()>СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр,СуммаОборотДтКонтрРегл,СуммаОборотКтКонтрРегл","","","","","",""));
КонецЦикла;
КонецЕсли;

Для Инд = 0 По МаксИндекс Цикл
ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]);
ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]);
ТабДок.Вывести(ОбластьОбороты);
КонецЦикла;


КонецЕсли;

ОбластьОборотыИтог.Параметры.СуммаОборотДт      = ОборотыДт;
ОбластьОборотыИтог.Параметры.СуммаОборотКт      = ОборотыКт;

// --- {
ОбластьОборотыИтог.Параметры.СуммаОборотДтКонтр = ОборотыДтКонтр;
ОбластьОборотыИтог.Параметры.СуммаОборотКтКонтр = ОборотыКтКонтр;
// --- }
Если ВыводитьСРегламентом Тогда
ОбластьОборотыИтог.Параметры.СуммаОборотДтРегл = ОборотыДтРегл;
ОбластьОборотыИтог.Параметры.СуммаОборотКтРегл = ОборотыКтРегл;

// --- {
ОбластьОборотыИтог.Параметры.СуммаОборотДтКонтрРегл = ОборотыДтКонтрРегл;
ОбластьОборотыИтог.Параметры.СуммаОборотКтКонтрРегл = ОборотыКтКонтрРегл;
// --- }
КонецЕсли;

ТабДок.Вывести(ОбластьОборотыИтог);

КонецЕсли;
     
ОстатокНаКонец = ОстатокНаНачало + ОборотыДт - ОборотыКт;
ОстатокНаКонецРегл = ОстатокНаНачалоРегл + ОборотыДтРегл - ОборотыКтРегл;

ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДт = ?(ОстатокНаКонец > 0, ОстатокНаКонец, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКт = ?(ОстатокНаКонец < 0, -ОстатокНаКонец, 0);

// --- {
ОстатокНаКонецКонтр = ОстатокНаКонецКонтрагент;
ОстатокНаКонецКонтрРегл = ОстатокНаКонецКонтрагентРегл;

ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтр = ?(ОстатокНаКонецКонтр > 0, ОстатокНаКонецКонтр, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтр = ?(ОстатокНаКонецКонтр < 0, -ОстатокНаКонецКонтр, 0);
// --- }

Если ВыводитьСРегламентом Тогда
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтРегл = ?(ОстатокНаКонецРегл > 0, ОстатокНаКонецРегл, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтРегл = ?(ОстатокНаКонецРегл < 0, -ОстатокНаКонецРегл, 0);

// --- {
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтрРегл = ?(ОстатокНаКонецКонтрРегл > 0, ОстатокНаКонецКонтрРегл, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтрРегл = ?(ОстатокНаКонецКонтрРегл < 0, -ОстатокНаКонецКонтрРегл, 0);
// --- }
КонецЕсли;

ТабДок.Вывести(ОбластьКонОстатки);

// Результаты сверки
  Если НЕ ЗначениеЗаполнено(КонецПериода) Тогда
        РезультатыСверки = "<не указана дата сверки>";
    ИначеЕсли НЕ ЗначениеЗаполнено(Контрагент) Тогда
        РезультатыСверки = "<не указан контрагент>";
    Иначе
РезультатыСверки = "на " + Формат(КонецПериода, "ДФ=dd.MM.yyyy") + " задолженность ";

    Если ОстатокНаКонец > 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НазваниеОрганизации) + " "
+ Формат(ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(ВалютаДокумента)
+" ("+ФормированиеПечатныхФорм.ФорматироватьСуммуПрописьюПлатежногоДокумента(ОстатокНаКонец, ВалютаДокумента,Ложь)+")" ;

    ИначеЕсли ОстатокНаКонец < 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НаименованиеКонтрагента) + " "
+ Формат(-ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(ВалютаДокумента)
+" ("+ФормированиеПечатныхФорм.ФорматироватьСуммуПрописьюПлатежногоДокумента(-ОстатокНаКонец, ВалютаДокумента,Ложь)+")" ;

    Иначе
    РезультатыСверки = РезультатыСверки + "отсутствует.";
    КонецЕсли;
КонецЕсли;
ОбластьПодвал.Параметры.РезультатыСверки = РезультатыСверки;

Если Расхождение<>0 Тогда                                                                                                                                                                                                                                                               
ИтогСверки = "В результате сверки выявлено расхождение информации о состоянии расчетов в размере "
+Формат(?(Расхождение>0,1,-1)*Расхождение, "ЧЦ=21; ЧДЦ=2")
+" "+ Строка(ВалютаДокумента)
+" ("+ФормированиеПечатныхФорм.ФорматироватьСуммуПрописьюПлатежногоДокумента(?(Расхождение>0,1,-1)*Расхождение, ВалютаДокумента,Ложь)+")" ;
ОбластьПодвал.Параметры.ИтогСверки = Символы.ПС+ ИтогСверки+Символы.ПС+" ";
КонецЕсли;
             
ОбластьПодвал.Параметры.НазваниеОрганизации = СокрЛП(НазваниеОрганизации);
ОбластьПодвал.Параметры.НаименованиеКонтрагента = СокрЛП(НаименованиеКонтрагента);

ОбластьПодвал.Параметры.Должность = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),"________________",ДанныеПредставителяОрганизации.Должность);
ОбластьПодвал.Параметры.ДолжностьК = ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента.Должность),"________________",ПредставительКонтрагента.Должность);

ОбластьПодвал.Параметры.ФИОПредставителя  = "("+?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации),"_______________________",ДанныеПредставителяОрганизации.Представление)+")";
ОбластьПодвал.Параметры.ФИОПредставителяК = "("+?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента),"_______________________",ПроцедурыУправленияПерсоналом.ФамилияИнициалыФизЛица(ПредставительКонтрагента.Фамилия + " " + ПредставительКонтрагента.Имя + " " + ПредставительКонтрагента.Отчество))+")";

ТабДок.Вывести(ОбластьПодвал);

Если ЭлементыФормы.ДействияФормы.Кнопки.ПометкаТолькоЧтение.Пометка Тогда
ТабДок.ТолькоПросмотр = Истина;
КонецЕсли;

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

sitash

Думаю что у Вас получилось :zebzdr:. Спасибо Вам огромное. За Ваше терпение и понимание. Удачи во всех начинаниях. :ooifh:
Добавлено: 19 авг 2015, 14:36


там одна проблема. когда на документ нажимаете документ не открывается. с учетом договоров тоже самая проблема. надеюсь на Вашу помощь.   
Добавлено: 19 авг 2015, 14:39


то есть раньше после сформирование отчета можно было открыт документ с двойным кликом или Энтером.
Добавлено: 19 авг 2015, 14:44


нажимали на любую ячейку отчета и открывался документ начале этого ряда (то есть ячейка дата, ячейка документ, дебит или кредит наша фирма, дебит и кредит клиент открывался документ начале этого ряда)все шло на документ.

Дмитрий@

Цитироватьтам одна проблема. когда на документ нажимаете документ не открывается. с учетом договоров тоже самая проблема. надеюсь на Вашу помощь.   
Добавлено: Сегодня в 14:39
то есть раньше после сформирование отчета можно было открыт документ с двойным кликом или Энтером.
Добавлено: Сегодня в 14:44
нажимали на любую ячейку отчета и открывался документ начале этого ряда (то есть ячейка дата, ячейка документ, дебит или кредит наша фирма, дебит и кредит клиент открывался документ начале этого ряда)все шло на документ.

Ну это не из-за меня.
Сначала убедитесь, что это проблема не единичного характера, то есть для одного документа или типа документов.
Потом в конфигураторе открываете внешнюю обработку, и в этой обработке у элемента формы "Поле табличного документа", поставьте напротив свойства "только просмотр" галочку.
Если это не сработает будем думать дальше.

sitash

Цитата: Дмитрий@ от 19 авг 2015, 16:05
Ну это не из-за меня.
Сначала убедитесь, что это проблема не единичного характера, то есть для одного документа или типа документов.
Потом в конфигураторе открываете внешнюю обработку, и в этой обработке у элемента формы "Поле табличного документа", поставьте напротив свойства "только просмотр" галочку.
Если это не сработает будем думать дальше.
а как найти? я все смотрел, может пропустил.

Дмитрий@


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск