Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А перед этим:
Процедура Сформировать_Колонки(Ит, Таб, Стр)
Если Флаг = 0 Тогда
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры, 1);
ТекКлиент=Ит.Субконто(ВидыСубконто.Контрагенты);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Контр=Ит.Субконто(ВидыСубконто.Договоры).Владелец;
Иначе
Контр=ТекКлиент;
КонецЕсли;
Таб.ПрисоединитьСекцию(Стр+"|Субконто1");
КонецЦикла;
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Таб.ПрисоединитьСекцию(Стр+"|Итог");
Иначе
КонецЕсли;
Иначе
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьПериоды(1);
Пока Ит.ПолучитьПериод() = 1 Цикл
Если ФлагРаскрытия=0 Тогда
Таб.ПрисоединитьСекцию(Стр+"|Период");
Иначе
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию(Стр+"|Итог");
КонецЕсли;
КонецПроцедуры
//*******************************************
Функция Расшифровка(Ит)
Расшифровка.Установить("Ит", Ит);
Возврат Расшифровка;
КонецФункции
И че не так?
Процедура Сформировать_Колонки(Ит, Таб, Стр)
Если Флаг = 0 Тогда
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры, 1);
ТекКлиент=Ит.Субконто(ВидыСубконто.Контрагенты);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Контр=Ит.Субконто(ВидыСубконто.Договоры).Владелец;
Иначе
Контр=ТекКлиент;
КонецЕсли;
Таб.ПрисоединитьСекцию(Стр+"|Субконто1");
КонецЦикла;
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Таб.ПрисоединитьСекцию(Стр+"|Итог");
Иначе
КонецЕсли;
Иначе
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьПериоды(1);
Пока Ит.ПолучитьПериод() = 1 Цикл
Если ФлагРаскрытия=0 Тогда
Таб.ПрисоединитьСекцию(Стр+"|Период");
Иначе
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию(Стр+"|Итог");
КонецЕсли;
КонецПроцедуры
//*******************************************
Функция Расшифровка(Ит)
Расшифровка.Установить("Ит", Ит);
Возврат Расшифровка;
КонецФункции
И че не так?
Вот что у меня.
Процедура ОбработкаЯчейкиТаблицы(Ит, Фл,Т)
Фл=1;
Тип=ТипЗначенияСтр(Т);
//убедимся, что это списокЗначений
Если Тип="СписокЗначений" Тогда
Фл=0;
//получаем значения из списка
Контр=Т.ПолучитьЗначение(ВыбСубконто1,"Начало"); // Ит.ПредставлениеСубконто(ВидыСубконто.Контрагенты)
Основание=Т.ПолучитьЗначение(ВыбСубконто2,"Начало"); // Ит.Субконто(ВидыСубконто.Договоры
СуммаДолга=Т.ПолучитьЗначение(Ит,"Итог"); // Ит.СКД()
//выводим
КонецЕсли;
ПечатьПисем();
КонецПроцедуры
//*******************************************
Функция Генерация(Ит)
Генерация = СоздатьОбъект("СписокЗначений");
Генерация.Установить("Субконто1", ВыбСубконто1);
Генерация.Установить("Субконто2", ВыбСубконто2);
Генерация.Установить("Ит", Ит);
Возврат Генерация;
т=СоздатьОбъект("Таблица");
т.ИсходнаяТаблица("Письма");
//Т.НоваяСтраница();
Автор=ПолноеИмяПользователя();
ДатаТ = ТекущаяДата();
Контр=ВыбСубконто1.ПолнНаименование;
Основание=ВыбСубконто2;
АдресКонтра=ВыбСубконто1.ЮридическийАдрес;
Т.ВывестиСекцию("Заголовок");
Т.ВывестиСекцию("Шапка");
ДатаДог=Основание.ДатаВозникновенияОбязательства;
ДатаДолга=ВыбКонПериода;
Дата1= ДатаДолга+1;
ОбработкаЯчейкиТаблицы(Ит, 1,Т);
//не работает выгрузка суммы
//СуммаДолга= Т.ПолучитьЗначение();
Т.ВывестиСекцию("Текст");
Если ФлПрет = 1 Тогда
Т.ВывестиСекцию("Текст2");
Иначе
Т.ВывестиСекцию("Текст1");
КонецЕсли;
Т.ВывестиСекцию("Подвал");
Т.Опции(0,0,0,0);
Т.ОбластьПечати(1);
Т.ПараметрыСтраницы(1,,,5,5,5,5,0,5,1,0,);
Т.ТолькоПросмотр(1);
Т.Показать("Печать писем контрагентам");
КонецФункции
Далее в ячейке в графе расшифровка записано Генерация(1).
Процедура ОбработкаЯчейкиТаблицы(Ит, Фл,Т)
Фл=1;
Тип=ТипЗначенияСтр(Т);
//убедимся, что это списокЗначений
Если Тип="СписокЗначений" Тогда
Фл=0;
//получаем значения из списка
Контр=Т.ПолучитьЗначение(ВыбСубконто1,"Начало"); // Ит.ПредставлениеСубконто(ВидыСубконто.Контрагенты)
Основание=Т.ПолучитьЗначение(ВыбСубконто2,"Начало"); // Ит.Субконто(ВидыСубконто.Договоры
СуммаДолга=Т.ПолучитьЗначение(Ит,"Итог"); // Ит.СКД()
//выводим
КонецЕсли;
ПечатьПисем();
КонецПроцедуры
//*******************************************
Функция Генерация(Ит)
Генерация = СоздатьОбъект("СписокЗначений");
Генерация.Установить("Субконто1", ВыбСубконто1);
Генерация.Установить("Субконто2", ВыбСубконто2);
Генерация.Установить("Ит", Ит);
Возврат Генерация;
т=СоздатьОбъект("Таблица");
т.ИсходнаяТаблица("Письма");
//Т.НоваяСтраница();
Автор=ПолноеИмяПользователя();
ДатаТ = ТекущаяДата();
Контр=ВыбСубконто1.ПолнНаименование;
Основание=ВыбСубконто2;
АдресКонтра=ВыбСубконто1.ЮридическийАдрес;
Т.ВывестиСекцию("Заголовок");
Т.ВывестиСекцию("Шапка");
ДатаДог=Основание.ДатаВозникновенияОбязательства;
ДатаДолга=ВыбКонПериода;
Дата1= ДатаДолга+1;
ОбработкаЯчейкиТаблицы(Ит, 1,Т);
//не работает выгрузка суммы
//СуммаДолга= Т.ПолучитьЗначение();
Т.ВывестиСекцию("Текст");
Если ФлПрет = 1 Тогда
Т.ВывестиСекцию("Текст2");
Иначе
Т.ВывестиСекцию("Текст1");
КонецЕсли;
Т.ВывестиСекцию("Подвал");
Т.Опции(0,0,0,0);
Т.ОбластьПечати(1);
Т.ПараметрыСтраницы(1,,,5,5,5,5,0,5,1,0,);
Т.ТолькоПросмотр(1);
Т.Показать("Печать писем контрагентам");
КонецФункции
Далее в ячейке в графе расшифровка записано Генерация(1).
Процедура ПечатьПисем(Контр,Основание,СуммаДолга)
Т=СоздатьОбъект("Таблица");
Т.ИсходнаяТаблица("Письма");
ВсегоКлиентов=0;
Т.НоваяСтраница();
ДатаТ = ТекущаяДата();
Т.ВывестиСекцию("Заголовок");
Контр=Контр.ПолнНаименование;
АдресКонтра=Контр.ЮридическийАдрес;
Т.ВывестиСекцию("Шапка");
Основание=Основание;
ДатаДог=Основание.ДатаВозникновенияОбязательства;
ДатаДолга=ВыбКонПериода;
Дата1=ДатаДолга+1;
Т.ВывестиСекцию("Текст");
ВсегоКлиентов=ВсегоКлиентов+1;
Если ВсегоКлиентов>0 тогда
Если ФлПрет = 1 Тогда
Т.ВывестиСекцию("Текст2");
Иначе
Т.ВывестиСекцию("Текст1");
КонецЕсли;
Автор=ПолноеИмяПользователя();
Т.ВывестиСекцию("Подвал");
Т.Опции(0,0,0,0);
Т.ОбластьПечати(1);
Т.ПараметрыСтраницы(1,,,5,5,5,5,0,5,1,0,);
Т.ТолькоПросмотр(1);
Т.Показать("Печать писем контрагентам");
КонецЕсли;
КонецПроцедуры
Т=СоздатьОбъект("Таблица");
Т.ИсходнаяТаблица("Письма");
ВсегоКлиентов=0;
Т.НоваяСтраница();
ДатаТ = ТекущаяДата();
Т.ВывестиСекцию("Заголовок");
Контр=Контр.ПолнНаименование;
АдресКонтра=Контр.ЮридическийАдрес;
Т.ВывестиСекцию("Шапка");
Основание=Основание;
ДатаДог=Основание.ДатаВозникновенияОбязательства;
ДатаДолга=ВыбКонПериода;
Дата1=ДатаДолга+1;
Т.ВывестиСекцию("Текст");
ВсегоКлиентов=ВсегоКлиентов+1;
Если ВсегоКлиентов>0 тогда
Если ФлПрет = 1 Тогда
Т.ВывестиСекцию("Текст2");
Иначе
Т.ВывестиСекцию("Текст1");
КонецЕсли;
Автор=ПолноеИмяПользователя();
Т.ВывестиСекцию("Подвал");
Т.Опции(0,0,0,0);
Т.ОбластьПечати(1);
Т.ПараметрыСтраницы(1,,,5,5,5,5,0,5,1,0,);
Т.ТолькоПросмотр(1);
Т.Показать("Печать писем контрагентам");
КонецЕсли;
КонецПроцедуры
(45) В письме ячейки имеют тип Шаблон.
В процедуре Сформировать() в строке формируется долг клиента по сч.76,5 по данному договору.
Сама таблица по этой процедуре делает все правильно - выдает контра в первой строке и совокупный долг по всем договорам, а во второй выводит долг по договорам. Вот именно в этой строке в графе конечное сальдо и ставлю расшифровку ячейки с надеждой передать в письмо: сумму долга, наименование контра, его договор, дату его подписания.
Чтобы получить вот такую строку:
[ДатаДог] г. между [НашаОрг] и [СокрЛП(Контр)] заключен договор [СокрЛП(Основание)] (Далее - Договор).
В процедуре Сформировать() в строке формируется долг клиента по сч.76,5 по данному договору.
Сама таблица по этой процедуре делает все правильно - выдает контра в первой строке и совокупный долг по всем договорам, а во второй выводит долг по договорам. Вот именно в этой строке в графе конечное сальдо и ставлю расшифровку ячейки с надеждой передать в письмо: сумму долга, наименование контра, его договор, дату его подписания.
Чтобы получить вот такую строку:
[ДатаДог] г. между [НашаОрг] и [СокрЛП(Контр)] заключен договор [СокрЛП(Основание)] (Далее - Договор).
Перем Расшифровка;
Перем Ном;
//*******************************************
Функция ПроверкаПериода()
Если (ВыбНачПериода > ВыбКонПериода) Тогда
Предупреждение("Неправильно задан период формирования отчета!"+РазделительСтрок+
"Дата начала больше даты окончания периода.", 60);
Возврат 0;
КонецЕсли;
Возврат 1;
КонецФункции // ПроверкаПериода()
//*******************************************
Процедура Сформировать_Колонки(Ит, Таб, Стр)
Если Флаг = 0 Тогда
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры, 1);
ТекКлиент=Ит.Субконто(ВидыСубконто.Контрагенты);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Контр=Ит.Субконто(ВидыСубконто.Договоры).Владелец;
Иначе
Контр=ТекКлиент;
КонецЕсли;
Таб.ПрисоединитьСекцию(Стр+"|Субконто1");
КонецЦикла;
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Таб.ПрисоединитьСекцию(Стр+"|Итог");
Иначе
КонецЕсли;
Иначе
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьПериоды(1);
Пока Ит.ПолучитьПериод() = 1 Цикл
Если ФлагРаскрытия=0 Тогда
Таб.ПрисоединитьСекцию(Стр+"|Период");
Иначе
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию(Стр+"|Итог");
КонецЕсли;
КонецПроцедуры
//*******************************************
Функция Расшифровка(Ит)
Расшифровка.Установить("Ит", Ит);
Расшифровка.Установить("Субконто1", ВыбСубконто1);
Расшифровка.Установить("Субконто2", ВыбСубконто2);
Возврат Расшифровка;
КонецФункции
//*******************************************
Процедура Сформировать()
Расшифровка = СоздатьОбъект("СписокЗначений");
ВыбВидСубконто1 = ВидыСубконто.Контрагенты;
ВыбВидСубконто2 = ВидыСубконто.Договоры;
Таб = СоздатьОбъект("Таблица");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбСубконто1, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Договоры, ВыбСубконто2, 1);
Если ФлагПрет = 1 Тогда
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "76.5,76.2", "76.5,76.2,60.1,60.2,62.1,62.2,62.6.А,62.6.П,62.7.А,62.7.П",, 1, "Месяц", "С");
Иначе
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "76.5", "76.5,60.1,60.2,62.1,62.2,62.6.А,62.6.П,62.7.А,62.7.П",, 1, "Месяц", "С");
КонецЕсли;
Расшифровка.Установить("Отчет", "АнализСчетаПоСубконто");
Расшифровка.Установить("Дата1", ВыбНачПериода);
Расшифровка.Установить("Дата2", ВыбКонПериода);
Расшифровка.Установить("ВидСубконто1",ВыбВидСубконто1);
Расшифровка.Установить("Субконто1", ВыбСубконто1);
Расшифровка.Установить("ВидСубконто2",ВыбВидСубконто2);
Расшифровка.Установить("Субконто2", ВыбСубконто2);
Если ФлагПрет = 0 Тогда
Расшифровка.Установить("Счет", СчетПоКоду("76.5"));
Иначе
Расшифровка.Установить("Счет", СчетПоКоду("76.5,76.2"));
КонецЕсли;
Если Флаг = 0 Тогда
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Заголовок");
Сформировать_Колонки(Ит, Таб, "Шапка");
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Период");
КонецЦикла;
Иначе
Таб.ИсходнаяТаблица("Таблица1");
Таб.ВывестиСекцию("Заголовок");
Сформировать_Колонки(Ит, Таб, "Шапка");
Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты);
Ном=0;
Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
Ном=Ном+1;
Сформировать_Колонки(Ит, Таб, "Субконто1");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Субконто2");
КонецЦикла;
КонецЦикла;
КонецЕсли;
Сформировать_Колонки(Ит, Таб, "Подвал");
НижнийКолонтитул = "Отчет сформирован "+ТекущаяДата()+" "+ТекущееВремя()+?(ПустоеЗначение(ИмяПользователя())=0," Пользователь: "+ИмяПользователя(),"");
Если Флаг = 0 Тогда
ФиксСтрок = 7;
Таб.ПовторятьПриПечатиСтроки(4,7);
Иначе
ФиксСтрок = 6;
Таб.ПовторятьПриПечатиСтроки(4,6);
КонецЕсли;
Таб.Опции(0,0,ФиксСтрок,3);
Таб.ОбластьПечати(1);
Таб.ПараметрыСтраницы(2,,,5,5,10,5,0,5,1,0,);
Таб.ТолькоПросмотр(1);
Таб.Показать(НижнийКолонтитул);
Таб.Показать("Анализ возмещения покупателями коммунальных услуг за период с " + ВыбНачПериода + " по " + ВыбКонПериода,"");
КонецПроцедуры
//*******************************************
Процедура ПечатьПретензий()
ДатаТ = ТекущаяДата();
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Претензии");
Таб.ВывестиСекцию("Заголовок");
Контр=ВыбСубконто1.ПолнНаименование;
АдресКонтра=ВыбСубконто1.ЮридическийАдрес;
Таб.ВывестиСекцию("Шапка");
Основание=ВыбСубконто2;
ДатаДог=Основание.ДатаВозникновенияОбязательства;
ДатаДолга=ВыбКонПериода;
Дата1= ДатаДолга+1;
СуммаДолга= ДатаДолга+1;
Таб.ВывестиСекцию("Текст");
Если ФлПрет = 1 Тогда
Таб.ВывестиСекцию("Текст2");
Иначе
Таб.ВывестиСекцию("Текст1");
КонецЕсли;
Автор=ПолноеИмяПользователя();
Таб.ВывестиСекцию("Подвал");
Таб.Опции(0,0,0,0);
Таб.ОбластьПечати(1);
Таб.ПараметрыСтраницы(1,,,5,5,5,5,0,5,1,0,);
Таб.ТолькоПросмотр(1);
Таб.Показать("Печать претензий контрагентам");
КонецПроцедуры
//*******************************************
Процедура ПечатьПисем(Контр,Основание,СуммаДолга)
Т=СоздатьОбъект("Таблица");
Т.ИсходнаяТаблица("Письма");
Т.ВывестиСекцию("Заголовок");
Контр=Контр.ПолнНаименование;
Т.ВывестиСекцию("Шапка");
Основание=Основание;
ДатаДог=Основание.ДатаВозникновенияОбязательства;
ДатаДолга=ВыбКонПериода;
Дата1=ДатаДолга+1;
ДатаТ = ТекущаяДата();
Т.ВывестиСекцию("Текст");
Если ФлПрет = 1 Тогда
Т.ВывестиСекцию("Текст2");
Иначе
Т.ВывестиСекцию("Текст1");
КонецЕсли;
Автор=ПолноеИмяПользователя();
Т.ВывестиСекцию("Подвал");
Т.Опции(0,0,0,0);
Т.ОбластьПечати(1);
Т.ПараметрыСтраницы(1,,,5,5,5,5,0,5,1,0,);
Т.ТолькоПросмотр(1);
Т.Показать("Печать писем контрагентам");
КонецПроцедуры
//*******************************************
Процедура ОбработкаЯчейкиТаблицы(Значение,Фл,Таб,Адрес)
Если ТипЗначенияСтр(Значение)="СписокЗначений" Тогда
Фл=0;
//получаем значения из списка
Контр=Значение.Получить("Субконто1"); // Ит.ПредставлениеСубконто(ВидыСубконто.Контрагенты)
//Сообщить(ТипЗначенияСтр(Контр));
//Сообщить(ПустоеЗначение(Контр));
//Сообщить("Имя=",Контр);
Основание=Значение.Получить("Субконто2"); // Ит.Субконто(ВидыСубконто.Договоры)
Сообщить("Договор=",Основание);
СуммаДолга=Значение.Получить("Ит"); // Ит.СКД()
Сообщить("Долг=",СуммаДолга);
//выводим
ПечатьПисем(Контр,Основание,СуммаДолга);
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура ПриОткрытии()
ВыбНачПериода = НачалоПериодаБИ();
ВыбКонПериода = КонецПериодаБИ();
Флаг =1;
ФлагРаскрытия =0;
ФлагПрет = 0;
глРасшифровка=Расшифровка;
КонецПроцедуры
Перем Ном;
//*******************************************
Функция ПроверкаПериода()
Если (ВыбНачПериода > ВыбКонПериода) Тогда
Предупреждение("Неправильно задан период формирования отчета!"+РазделительСтрок+
"Дата начала больше даты окончания периода.", 60);
Возврат 0;
КонецЕсли;
Возврат 1;
КонецФункции // ПроверкаПериода()
//*******************************************
Процедура Сформировать_Колонки(Ит, Таб, Стр)
Если Флаг = 0 Тогда
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры, 1);
ТекКлиент=Ит.Субконто(ВидыСубконто.Контрагенты);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Контр=Ит.Субконто(ВидыСубконто.Договоры).Владелец;
Иначе
Контр=ТекКлиент;
КонецЕсли;
Таб.ПрисоединитьСекцию(Стр+"|Субконто1");
КонецЦикла;
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Таб.ПрисоединитьСекцию(Стр+"|Итог");
Иначе
КонецЕсли;
Иначе
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьПериоды(1);
Пока Ит.ПолучитьПериод() = 1 Цикл
Если ФлагРаскрытия=0 Тогда
Таб.ПрисоединитьСекцию(Стр+"|Период");
Иначе
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию(Стр+"|Итог");
КонецЕсли;
КонецПроцедуры
//*******************************************
Функция Расшифровка(Ит)
Расшифровка.Установить("Ит", Ит);
Расшифровка.Установить("Субконто1", ВыбСубконто1);
Расшифровка.Установить("Субконто2", ВыбСубконто2);
Возврат Расшифровка;
КонецФункции
//*******************************************
Процедура Сформировать()
Расшифровка = СоздатьОбъект("СписокЗначений");
ВыбВидСубконто1 = ВидыСубконто.Контрагенты;
ВыбВидСубконто2 = ВидыСубконто.Договоры;
Таб = СоздатьОбъект("Таблица");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбСубконто1, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Договоры, ВыбСубконто2, 1);
Если ФлагПрет = 1 Тогда
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "76.5,76.2", "76.5,76.2,60.1,60.2,62.1,62.2,62.6.А,62.6.П,62.7.А,62.7.П",, 1, "Месяц", "С");
Иначе
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "76.5", "76.5,60.1,60.2,62.1,62.2,62.6.А,62.6.П,62.7.А,62.7.П",, 1, "Месяц", "С");
КонецЕсли;
Расшифровка.Установить("Отчет", "АнализСчетаПоСубконто");
Расшифровка.Установить("Дата1", ВыбНачПериода);
Расшифровка.Установить("Дата2", ВыбКонПериода);
Расшифровка.Установить("ВидСубконто1",ВыбВидСубконто1);
Расшифровка.Установить("Субконто1", ВыбСубконто1);
Расшифровка.Установить("ВидСубконто2",ВыбВидСубконто2);
Расшифровка.Установить("Субконто2", ВыбСубконто2);
Если ФлагПрет = 0 Тогда
Расшифровка.Установить("Счет", СчетПоКоду("76.5"));
Иначе
Расшифровка.Установить("Счет", СчетПоКоду("76.5,76.2"));
КонецЕсли;
Если Флаг = 0 Тогда
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Заголовок");
Сформировать_Колонки(Ит, Таб, "Шапка");
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Период");
КонецЦикла;
Иначе
Таб.ИсходнаяТаблица("Таблица1");
Таб.ВывестиСекцию("Заголовок");
Сформировать_Колонки(Ит, Таб, "Шапка");
Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты);
Ном=0;
Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
Ном=Ном+1;
Сформировать_Колонки(Ит, Таб, "Субконто1");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Субконто2");
КонецЦикла;
КонецЦикла;
КонецЕсли;
Сформировать_Колонки(Ит, Таб, "Подвал");
НижнийКолонтитул = "Отчет сформирован "+ТекущаяДата()+" "+ТекущееВремя()+?(ПустоеЗначение(ИмяПользователя())=0," Пользователь: "+ИмяПользователя(),"");
Если Флаг = 0 Тогда
ФиксСтрок = 7;
Таб.ПовторятьПриПечатиСтроки(4,7);
Иначе
ФиксСтрок = 6;
Таб.ПовторятьПриПечатиСтроки(4,6);
КонецЕсли;
Таб.Опции(0,0,ФиксСтрок,3);
Таб.ОбластьПечати(1);
Таб.ПараметрыСтраницы(2,,,5,5,10,5,0,5,1,0,);
Таб.ТолькоПросмотр(1);
Таб.Показать(НижнийКолонтитул);
Таб.Показать("Анализ возмещения покупателями коммунальных услуг за период с " + ВыбНачПериода + " по " + ВыбКонПериода,"");
КонецПроцедуры
//*******************************************
Процедура ПечатьПретензий()
ДатаТ = ТекущаяДата();
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Претензии");
Таб.ВывестиСекцию("Заголовок");
Контр=ВыбСубконто1.ПолнНаименование;
АдресКонтра=ВыбСубконто1.ЮридическийАдрес;
Таб.ВывестиСекцию("Шапка");
Основание=ВыбСубконто2;
ДатаДог=Основание.ДатаВозникновенияОбязательства;
ДатаДолга=ВыбКонПериода;
Дата1= ДатаДолга+1;
СуммаДолга= ДатаДолга+1;
Таб.ВывестиСекцию("Текст");
Если ФлПрет = 1 Тогда
Таб.ВывестиСекцию("Текст2");
Иначе
Таб.ВывестиСекцию("Текст1");
КонецЕсли;
Автор=ПолноеИмяПользователя();
Таб.ВывестиСекцию("Подвал");
Таб.Опции(0,0,0,0);
Таб.ОбластьПечати(1);
Таб.ПараметрыСтраницы(1,,,5,5,5,5,0,5,1,0,);
Таб.ТолькоПросмотр(1);
Таб.Показать("Печать претензий контрагентам");
КонецПроцедуры
//*******************************************
Процедура ПечатьПисем(Контр,Основание,СуммаДолга)
Т=СоздатьОбъект("Таблица");
Т.ИсходнаяТаблица("Письма");
Т.ВывестиСекцию("Заголовок");
Контр=Контр.ПолнНаименование;
Т.ВывестиСекцию("Шапка");
Основание=Основание;
ДатаДог=Основание.ДатаВозникновенияОбязательства;
ДатаДолга=ВыбКонПериода;
Дата1=ДатаДолга+1;
ДатаТ = ТекущаяДата();
Т.ВывестиСекцию("Текст");
Если ФлПрет = 1 Тогда
Т.ВывестиСекцию("Текст2");
Иначе
Т.ВывестиСекцию("Текст1");
КонецЕсли;
Автор=ПолноеИмяПользователя();
Т.ВывестиСекцию("Подвал");
Т.Опции(0,0,0,0);
Т.ОбластьПечати(1);
Т.ПараметрыСтраницы(1,,,5,5,5,5,0,5,1,0,);
Т.ТолькоПросмотр(1);
Т.Показать("Печать писем контрагентам");
КонецПроцедуры
//*******************************************
Процедура ОбработкаЯчейкиТаблицы(Значение,Фл,Таб,Адрес)
Если ТипЗначенияСтр(Значение)="СписокЗначений" Тогда
Фл=0;
//получаем значения из списка
Контр=Значение.Получить("Субконто1"); // Ит.ПредставлениеСубконто(ВидыСубконто.Контрагенты)
//Сообщить(ТипЗначенияСтр(Контр));
//Сообщить(ПустоеЗначение(Контр));
//Сообщить("Имя=",Контр);
Основание=Значение.Получить("Субконто2"); // Ит.Субконто(ВидыСубконто.Договоры)
Сообщить("Договор=",Основание);
СуммаДолга=Значение.Получить("Ит"); // Ит.СКД()
Сообщить("Долг=",СуммаДолга);
//выводим
ПечатьПисем(Контр,Основание,СуммаДолга);
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура ПриОткрытии()
ВыбНачПериода = НачалоПериодаБИ();
ВыбКонПериода = КонецПериодаБИ();
Флаг =1;
ФлагРаскрытия =0;
ФлагПрет = 0;
глРасшифровка=Расшифровка;
КонецПроцедуры
Процедура ОбработкаЯчейкиТаблицы(Список, фл)
Фл=1;
Тип=ТипЗначенияСтр(Список);
Если Тип="СписокЗначений" Тогда
Фл=0;
Контр=Список.ПолучитьЗначение(Контрагент); // Ит.ПредставлениеСубконто(ВидыСубконто.Контрагенты)
Основание=Список.ПолучитьЗначение(Договор); // Ит.Субконто(ВидыСубконто.Договоры
СуммаДолга=Список.ПолучитьЗначение(Сумма); // Ит.СКД()
КонецЕсли;
ПечатьПисем();
КонецПроцедуры
Так тогда это не нужно...
Фл=1;
Тип=ТипЗначенияСтр(Список);
Если Тип="СписокЗначений" Тогда
Фл=0;
Контр=Список.ПолучитьЗначение(Контрагент); // Ит.ПредставлениеСубконто(ВидыСубконто.Контрагенты)
Основание=Список.ПолучитьЗначение(Договор); // Ит.Субконто(ВидыСубконто.Договоры
СуммаДолга=Список.ПолучитьЗначение(Сумма); // Ит.СКД()
КонецЕсли;
ПечатьПисем();
КонецПроцедуры
Так тогда это не нужно...
(18) Вы меня спрашиваете ? Или мысли вслух ?
Вадим Балашов 21.08.09 16:45
в отчете ячейка1 = Ит.Субконто(ВидыСубконто.Договоры) ячейка 2 = Ит.СКД()#Ч015.2,'
>>>>>в расшифровку ячейки 2 кладу процедуру вывода письма = ПечПисьма(1)
Вадим Балашов 21.08.09 17:04
>>>>Процедура тогда не нужна.
В расшифровку пихайте заполненый список значений в момент вывода секции и всё..
Что тут может быть непонятного?
Вадим Балашов 21.08.09 16:45
в отчете ячейка1 = Ит.Субконто(ВидыСубконто.Договоры) ячейка 2 = Ит.СКД()#Ч015.2,'
>>>>>в расшифровку ячейки 2 кладу процедуру вывода письма = ПечПисьма(1)
Вадим Балашов 21.08.09 17:04
>>>>Процедура тогда не нужна.
В расшифровку пихайте заполненый список значений в момент вывода секции и всё..
Что тут может быть непонятного?
Процедура Сформировать()
Расшифровка = СоздатьОбъект("СписокЗначений");
ВыбВидСубконто1 = ВидыСубконто.Контрагенты;
ВыбВидСубконто2 = ВидыСубконто.Договоры;
Таб = СоздатьОбъект("Таблица");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбСубконто1, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Договоры, ВыбСубконто2, 1);
Если ФлагПрет = 1 Тогда
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "76.5,76.2", "76.5,76.2,60.1,60.2,62.1,62.2,62.6.А,62.6.П,62.7.А,62.7.П",, 1, "Месяц", "С");
Иначе
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "76.5", "76.5,60.1,60.2,62.1,62.2,62.6.А,62.6.П,62.7.А,62.7.П",, 1, "Месяц", "С");
КонецЕсли;
Расшифровка.Установить("Отчет", "АнализСчетаПоСубконто");
Расшифровка.Установить("Дата1", ВыбНачПериода);
Расшифровка.Установить("Дата2", ВыбКонПериода);
Расшифровка.Установить("ВидСубконто1",ВыбВидСубконто1);
Расшифровка.Установить("Субконто1", ВыбСубконто1);
Расшифровка.Установить("ВидСубконто2",ВыбВидСубконто2);
Расшифровка.Установить("Субконто2", ВыбСубконто2);
Если ФлагПрет = 0 Тогда
Расшифровка.Установить("Счет", СчетПоКоду("76.5"));
Иначе
Расшифровка.Установить("Счет", СчетПоКоду("76.5,76.2"));
КонецЕсли;
Если Флаг = 0 Тогда
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Заголовок");
Сформировать_Колонки(Ит, Таб, "Шапка");
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Период");
КонецЦикла;
Иначе
Таб.ИсходнаяТаблица("Таблица1");
Таб.ВывестиСекцию("Заголовок");
Сформировать_Колонки(Ит, Таб, "Шапка");
Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты);
Ном=0;
Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
Ном=Ном+1;
Сформировать_Колонки(Ит, Таб, "Субконто1");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Субконто2");
КонецЦикла;
КонецЦикла;
КонецЕсли;
Расшифровка = СоздатьОбъект("СписокЗначений");
ВыбВидСубконто1 = ВидыСубконто.Контрагенты;
ВыбВидСубконто2 = ВидыСубконто.Договоры;
Таб = СоздатьОбъект("Таблица");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбСубконто1, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Договоры, ВыбСубконто2, 1);
Если ФлагПрет = 1 Тогда
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "76.5,76.2", "76.5,76.2,60.1,60.2,62.1,62.2,62.6.А,62.6.П,62.7.А,62.7.П",, 1, "Месяц", "С");
Иначе
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "76.5", "76.5,60.1,60.2,62.1,62.2,62.6.А,62.6.П,62.7.А,62.7.П",, 1, "Месяц", "С");
КонецЕсли;
Расшифровка.Установить("Отчет", "АнализСчетаПоСубконто");
Расшифровка.Установить("Дата1", ВыбНачПериода);
Расшифровка.Установить("Дата2", ВыбКонПериода);
Расшифровка.Установить("ВидСубконто1",ВыбВидСубконто1);
Расшифровка.Установить("Субконто1", ВыбСубконто1);
Расшифровка.Установить("ВидСубконто2",ВыбВидСубконто2);
Расшифровка.Установить("Субконто2", ВыбСубконто2);
Если ФлагПрет = 0 Тогда
Расшифровка.Установить("Счет", СчетПоКоду("76.5"));
Иначе
Расшифровка.Установить("Счет", СчетПоКоду("76.5,76.2"));
КонецЕсли;
Если Флаг = 0 Тогда
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Заголовок");
Сформировать_Колонки(Ит, Таб, "Шапка");
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Период");
КонецЦикла;
Иначе
Таб.ИсходнаяТаблица("Таблица1");
Таб.ВывестиСекцию("Заголовок");
Сформировать_Колонки(Ит, Таб, "Шапка");
Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты);
Ном=0;
Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
Ном=Ном+1;
Сформировать_Колонки(Ит, Таб, "Субконто1");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Субконто2");
КонецЦикла;
КонецЦикла;
КонецЕсли;
Ё.. ты издеваешься что ли ?
В поле "Расшифровка" клади СписокЗначений , т.е Расшифровка, где Расшифровка = СоздатьОбъект("СписокЗначений")... так сделано во всех типовых...
В ОбработкаЯчейкиТаблицы прилетит Этот список.
В поле "Расшифровка" клади СписокЗначений , т.е Расшифровка, где Расшифровка = СоздатьОбъект("СписокЗначений")... так сделано во всех типовых...
В ОбработкаЯчейкиТаблицы прилетит Этот список.
Ты про ПечатьПисем()?
Делаю это для формирования печатной формы письма по клику на ячейке, где уже есть сумма долга.
А в письме уже должны подставиться наименование контра, его договор, его дата заключения и конечно сумма долга.
Делаю это для формирования печатной формы письма по клику на ячейке, где уже есть сумма долга.
А в письме уже должны подставиться наименование контра, его договор, его дата заключения и конечно сумма долга.
Контр=Значение.ПолучитьЗначение("Субконто1",ВыбСубконто1); // Ит.ПредставлениеСубконто(ВидыСубконто.Контрагенты)
Индекс не входит в границы списка значений.
Основание=Значение.ПолучитьЗначение("Субконто2",ВыбСубконто2); // Ит.Субконто(ВидыСубконто.Договоры)
Индекс не входит в границы списка значений.
СуммаДолга=Значение.ПолучитьЗначение("Счет", СчетПоКоду("76.5")); // Ит.СКД()
Индекс не входит в границы списка значений.
После преобразований.
Письмо (печ.форма) выходит, а вот поля в нем Контр, Основание, СуммаДолга не выводит - голый текст.
Но все равно спасибо за (38)
Индекс не входит в границы списка значений.
Основание=Значение.ПолучитьЗначение("Субконто2",ВыбСубконто2); // Ит.Субконто(ВидыСубконто.Договоры)
Индекс не входит в границы списка значений.
СуммаДолга=Значение.ПолучитьЗначение("Счет", СчетПоКоду("76.5")); // Ит.СКД()
Индекс не входит в границы списка значений.
После преобразований.
Письмо (печ.форма) выходит, а вот поля в нем Контр, Основание, СуммаДолга не выводит - голый текст.
Но все равно спасибо за (38)
Гы... у вас в списке - всегда один и тот же клиентос - ВыбСубконто1.. оно вам надо ?
1. //Перем Расшифровка
2. Расшифровка.Установить нужно запихать в Сформировать_Колонки ... там где вывод секций..
и пихать в Список нужные значения , полученные из запроса.
1. //Перем Расшифровка
2. Расшифровка.Установить нужно запихать в Сформировать_Колонки ... там где вывод секций..
и пихать в Список нужные значения , полученные из запроса.
//Перем Расшифровка - ремить нельзя все остальное работать не будет.
ВыбСубкотно1 - при выводе таблицы в цикле выводит Субконто1,
ВыбСубкотно2 - при выводе таблицы в цикле выводит Субконто2, смотри процедуру Сформировать()
ВыбСубкотно1 - при выводе таблицы в цикле выводит Субконто1,
ВыбСубкотно2 - при выводе таблицы в цикле выводит Субконто2, смотри процедуру Сформировать()
Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
Ном=Ном+1;
Сформировать_Колонки(Ит, Таб, "Субконто1");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры);
Расшифровка(Ит);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Субконто2");
Расшифровка(Ит);
КонецЦикла;
КонецЦикла;
Неужели так?
Ном=Ном+1;
Сформировать_Колонки(Ит, Таб, "Субконто1");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры);
Расшифровка(Ит);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Субконто2");
Расшифровка(Ит);
КонецЦикла;
КонецЦикла;
Неужели так?
Процедура Сформировать_Колонки(Ит, Таб, Стр)
Если Флаг = 0 Тогда
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры, 1);
ТекКлиент=Ит.Субконто(ВидыСубконто.Контрагенты);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Контр=Ит.Субконто(ВидыСубконто.Договоры).Владелец;
Иначе
Контр=ТекКлиент;
КонецЕсли;
////====================================
Расшифровка.Установить("Субконто1",Контр);
//=======================================
Таб.ПрисоединитьСекцию(Стр+"|Субконто1");
КонецЦикла;
Если Флаг = 0 Тогда
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры, 1);
ТекКлиент=Ит.Субконто(ВидыСубконто.Контрагенты);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Контр=Ит.Субконто(ВидыСубконто.Договоры).Владелец;
Иначе
Контр=ТекКлиент;
КонецЕсли;
////====================================
Расшифровка.Установить("Субконто1",Контр);
//=======================================
Таб.ПрисоединитьСекцию(Стр+"|Субконто1");
КонецЦикла;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот