Парюсь. Вывод из отчета - писем счастья

1. Lis1904 21.08.09 14:18 Сейчас в теме
Хотел из внешней обработки после формирования долга по контрам, чтобы встав на долг контра по соответствующему договору сформировать претензию или "письмо счастья". Кто нибудь делал нечто подобное?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
11. Lis1904 21.08.09 16:45 Сейчас в теме
в отчете ячейка1 = Ит.Субконто(ВидыСубконто.Договоры) ячейка 2 = Ит.СКД()#Ч015.2,'
в расшифровку ячейки 2 кладу процедуру вывода письма = ПечПисьма(1)
Получаю бесконечный цикл.
12. Ёпрст 1063 21.08.09 16:51 Сейчас в теме
(11) в ячейку в поле расшифровки нужно класть САМО значение ..или список значений, если хотите поиметь несколько значений потом...
21. Lis1904 21.08.09 18:12 Сейчас в теме
А перед этим:

Процедура Сформировать_Колонки(Ит, Таб, Стр)
Если Флаг = 0 Тогда
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры, 1);
ТекКлиент=Ит.Субконто(ВидыСубконто.Контрагенты);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Контр=Ит.Субконто(ВидыСубконто.Договоры).Владелец;
Иначе
Контр=ТекКлиент;
КонецЕсли;
Таб.ПрисоединитьСекцию(Стр+"|Субконто1");
КонецЦикла;
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Таб.ПрисоединитьСекцию(Стр+"|Итог");
Иначе
КонецЕсли;
Иначе
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьПериоды(1);
Пока Ит.ПолучитьПериод() = 1 Цикл
Если ФлагРаскрытия=0 Тогда
Таб.ПрисоединитьСекцию(Стр+"|Период");
Иначе
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию(Стр+"|Итог");
КонецЕсли;
КонецПроцедуры
//*******************************************
Функция Расшифровка(Ит)
Расшифровка.Установить("Ит", Ит);
Возврат Расшифровка;
КонецФункции

И че не так?
23. Ёпрст 1063 24.08.09 08:44 Сейчас в теме
(21) В ячейку в поле Расшифровка напиши Расшифровка.. и всё.
22. Lis1904 21.08.09 18:15 Сейчас в теме
Если делаешь функцию ПечатьПисьма(1) в ячейке "Расшифровка", то выдает слишком много параметров, а сослаться на процедуру нельзя.
33. Lis1904 27.08.09 09:33 Сейчас в теме
Вот что у меня.

Процедура ОбработкаЯчейкиТаблицы(Ит, Фл,Т)
Фл=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).
44. Lis1904 27.08.09 14:53 Сейчас в теме
Процедура ПечатьПисем(Контр,Основание,СуммаДолга)
Т=СоздатьОбъект("Таблица");
Т.ИсходнаяТаблица("Письма");
ВсегоКлиентов=0;
Т.НоваяСтраница();
ДатаТ = ТекущаяДата();
Т.ВывестиСекцию("Заголовок");
Контр=Контр.ПолнНаименование;
АдресКонтра=Контр.ЮридическийАдрес;
Т.ВывестиСекцию("Шапка");
Основание=Основание;
ДатаДог=Основание.ДатаВозникновенияОбязательства;
ДатаДолга=ВыбКонПериода;
Дата1=ДатаДолга+1;
Т.ВывестиСекцию("Текст");
ВсегоКлиентов=ВсегоКлиентов+1;
Если ВсегоКлиентов>0 тогда
Если ФлПрет = 1 Тогда
Т.ВывестиСекцию("Текст2");
Иначе
Т.ВывестиСекцию("Текст1");
КонецЕсли;
Автор=ПолноеИмяПользователя();
Т.ВывестиСекцию("Подвал");
Т.Опции(0,0,0,0);
Т.ОбластьПечати(1);
Т.ПараметрыСтраницы(1,,,5,5,5,5,0,5,1,0,);
Т.ТолькоПросмотр(1);
Т.Показать("Печать писем контрагентам");
КонецЕсли;
КонецПроцедуры
45. Ёпрст 1063 27.08.09 15:00 Сейчас в теме
(44) Запустите отладчик..
в переменные Контр,Основание что-то попадает ?
В макете Таблицы тип ячейкам указан какой ? Что в них ?..
46. Lis1904 27.08.09 15:09 Сейчас в теме
(45) В письме ячейки имеют тип Шаблон.
В процедуре Сформировать() в строке формируется долг клиента по сч.76,5 по данному договору.
Сама таблица по этой процедуре делает все правильно - выдает контра в первой строке и совокупный долг по всем договорам, а во второй выводит долг по договорам. Вот именно в этой строке в графе конечное сальдо и ставлю расшифровку ячейки с надеждой передать в письмо: сумму долга, наименование контра, его договор, дату его подписания.
Чтобы получить вот такую строку:
[ДатаДог] г. между [НашаОрг] и [СокрЛП(Контр)] заключен договор [СокрЛП(Основание)] (Далее - Договор).
47. Ёпрст 1063 27.08.09 15:32 Сейчас в теме
(46) Э...
у вас Эти ячейки в какой секции ? В "Заголовок" или "Шапка" ??
А то вы Контр = ... присваиваете после вывода секции "Заголовок"
59. Lis1904 27.08.09 17:48 Сейчас в теме
Перем Расшифровка;
Перем Ном;
//*******************************************
Функция ПроверкаПериода()
Если (ВыбНачПериода > ВыбКонПериода) Тогда
Предупреждение("Неправильно задан период формирования отчета!"+РазделительСтрок+
"Дата начала больше даты окончания периода.", 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;
глРасшифровка=Расшифровка;
КонецПроцедуры
2. anig99 2843 21.08.09 14:21 Сейчас в теме
Для 8 я делал... для 7ки хз как.
3. Ёпрст 1063 21.08.09 15:23 Сейчас в теме
И.. в чем сложность?
В расшифровку пихай договор и сумму, в ОбработкаЯчейкаТаблицы формируй своё письмо "счастья" используя данные из расшифровки ячейки.
4. Lis1904 21.08.09 15:31 Сейчас в теме
2 (3) Туманно объясняетесь. По-подробнее.
6. Lis1904 21.08.09 16:05 Сейчас в теме
Так нужно чтоб по всем сформировались письма, либо выборочно.
7. Altair777 644 21.08.09 16:09 Сейчас в теме
(6) Так по всем или выборочно?
Из (1) следует что выборочно
8. Lis1904 21.08.09 16:19 Сейчас в теме
Лучше универсализм. Иногда у директора есть "свои", которым не надо писать.
9. Lis1904 21.08.09 16:20 Сейчас в теме
Пока расшифровкой не получилось. Туплю наверняка.
10. Ёпрст 1063 21.08.09 16:33 Сейчас в теме
(9) Что именно не понятно ?
Что положил в поле Расшифровка в момент вывода секции, то и получил в ОбработкаЯчейкиТаблицы в качестве параметра при клике на ячейки..всё собственно, далее делай всё что угодно.
13. Lis1904 21.08.09 16:58 Сейчас в теме
Процедура ОбработкаЯчейкиТаблицы(Список, фл)
Фл=1;
Тип=ТипЗначенияСтр(Список);

Если Тип="СписокЗначений" Тогда
Фл=0;

Контр=Список.ПолучитьЗначение(Контрагент); // Ит.ПредставлениеСубконто(ВидыСубконто.Контрагенты)
Основание=Список.ПолучитьЗначение(Договор); // Ит.Субконто(ВидыСубконто.Договоры
СуммаДолга=Список.ПолучитьЗначение(Сумма); // Ит.СКД()

КонецЕсли;
ПечатьПисем();
КонецПроцедуры

Так тогда это не нужно...
14. Ёпрст 1063 21.08.09 17:00 Сейчас в теме
(13) Это что ?

И не нужно что?...
15. Ёпрст 1063 21.08.09 17:01 Сейчас в теме
+14 и смотрите попутно методы для работы со списком значений.. а то у вас бредятика написана...
16. Lis1904 21.08.09 17:04 Сейчас в теме
Процедура тогда не нужна.
17. Ёпрст 1063 21.08.09 17:17 Сейчас в теме
(16) а кто сказал, что нужна ?
18. Lis1904 21.08.09 17:25 Сейчас в теме
Ниче не понял, как же расшифровка без обработки ячейки произойдет.
19. Ёпрст 1063 21.08.09 17:46 Сейчас в теме
(18) Вы меня спрашиваете ? Или мысли вслух ?

Вадим Балашов 21.08.09 16:45

в отчете ячейка1 = Ит.Субконто(ВидыСубконто.Договоры) ячейка 2 = Ит.СКД()#Ч015.2,'
>>>>>в расшифровку ячейки 2 кладу процедуру вывода письма = ПечПисьма(1)

Вадим Балашов 21.08.09 17:04
>>>>Процедура тогда не нужна.


В расшифровку пихайте заполненый список значений в момент вывода секции и всё..
Что тут может быть непонятного?
20. Lis1904 21.08.09 18:11 Сейчас в теме
Процедура Сформировать()
Расшифровка = СоздатьОбъект("СписокЗначений");
ВыбВидСубконто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");
КонецЦикла;
КонецЦикла;
КонецЕсли;
24. Lis1904 25.08.09 12:24 Сейчас в теме
Если это написать то выводится будет анализ по 76... смотри код пост 20,21.
25. Ёпрст 1063 26.08.09 10:21 Сейчас в теме
(24) Ё... Так воткни Локальную ОбработкаЯчейкаТаблицы в сам отчет, лови СписокЗначений... формируй своё письмо из полученных данных...
А еще лучше - по клику на ячейке - вываливается меню выбора - либо формировать письмо/чего там еще надо/либо анализ счета..
26. Ёпрст 1063 26.08.09 10:22 Сейчас в теме
+25 либо переделай ОбработкаЯчейкиТаблицы в самом глобальнике.
27. Lis1904 26.08.09 13:52 Сейчас в теме
2(26) Неприемлемо. Задача без правки глобальника.
2(25) Именно по клику и не могу реализовать.
28. Ёпрст 1063 26.08.09 17:59 Сейчас в теме
(27) Почему ?
В локальной ОбработкаЯчейкиТаблицы лови свой СписокЗначений,который ты в Расшифровку положил, в нём ужо - есть всё что надо.. для формирования нового отчета..
29. Lis1904 26.08.09 18:18 Сейчас в теме
Дак это и не получается.
Засовывал в теле существующего отчета. Не работает чё-то.
30. Ёпрст 1063 27.08.09 08:07 Сейчас в теме
(29) форму отчета не закрывай - и будет работать.
31. Lis1904 27.08.09 09:16 Сейчас в теме
Пример приведи что-ли...
32. Ёпрст 1063 27.08.09 09:24 Сейчас в теме
34. Ёпрст 1063 27.08.09 09:43 Сейчас в теме
Ё.. ты издеваешься что ли ?
В поле "Расшифровка" клади СписокЗначений , т.е Расшифровка, где Расшифровка = СоздатьОбъект("СписокЗначений")... так сделано во всех типовых...

В ОбработкаЯчейкиТаблицы прилетит Этот список.
37. Lis1904 27.08.09 10:10 Сейчас в теме
35. Ёпрст 1063 27.08.09 09:43 Сейчас в теме
+34 Нахрена ты туда какой то вызов процедуры подсовываешь?
36. Lis1904 27.08.09 10:09 Сейчас в теме
Ты про ПечатьПисем()?
Делаю это для формирования печатной формы письма по клику на ячейке, где уже есть сумма долга.
А в письме уже должны подставиться наименование контра, его договор, его дата заключения и конечно сумма долга.
38. Ёпрст 1063 27.08.09 10:50 Сейчас в теме
На пример..
http://webfile.ru/3870378
там всё просто как грабли.
39. Lis1904 27.08.09 13:24 Сейчас в теме
Контр=Значение.ПолучитьЗначение("Субконто1",ВыбСубконто1); // Ит.ПредставлениеСубконто(ВидыСубконто.Контрагенты)
Индекс не входит в границы списка значений.
Основание=Значение.ПолучитьЗначение("Субконто2",ВыбСубконто2); // Ит.Субконто(ВидыСубконто.Договоры)
Индекс не входит в границы списка значений.
СуммаДолга=Значение.ПолучитьЗначение("Счет", СчетПоКоду("76.5")); // Ит.СКД()
Индекс не входит в границы списка значений.

После преобразований.
Письмо (печ.форма) выходит, а вот поля в нем Контр, Основание, СуммаДолга не выводит - голый текст.
Но все равно спасибо за (38)
40. Ёпрст 1063 27.08.09 13:45 Сейчас в теме
(39) Читайте внимательно про методв для работы со списком значения..
Нужно не ПолучитьЗначение, а Получить .. где по строковому представлению поимеете само значение списка.
42. Lis1904 27.08.09 14:12 Сейчас в теме
(40) говорю же парюсь. Исправил. Но в письме все равно ничего нет.
(41) Да уже сделал.
41. Ёпрст 1063 27.08.09 13:46 Сейчас в теме
Вам нужно просто писать:

Контр=Значение.Получить("Субконто1");
....
43. Ёпрст 1063 27.08.09 14:42 Сейчас в теме
Отсюда не видно, как вы вторую Таблицу формируете и что вы указываете в ячейках той таблицы..
А так - в примере всё вроде как прозрачно..
48. Lis1904 27.08.09 15:37 Сейчас в теме
В заголовке только кусок фирменный бланка, далее текст.
49. Lis1904 27.08.09 15:38 Сейчас в теме
(48) Сорри. Читать так. В заголовке только кусок фирменного бланка, далее текст.
50. Ёпрст 1063 27.08.09 16:40 Сейчас в теме
(48)
Сообщить(Контр);
Есть что нить?

Тип ячейки поменяйте на Выражение и напишите пока просто Контр в ней.. показывает ?...
52. Ёпрст 1063 27.08.09 17:31 Сейчас в теме
(50) Т.е в Сообщить Пусто ?
51. Lis1904 27.08.09 16:45 Сейчас в теме
54. Altair777 644 27.08.09 17:36 Сейчас в теме
(51) А если?
Сообщить(ТипЗначенияСтр(Контр));
Сообщить(ПустоеЗначение(Контр));
56. Lis1904 27.08.09 17:38 Сейчас в теме
57. Ёпрст 1063 27.08.09 17:41 Сейчас в теме
(56) Значит там и нет ничего :)
Вот и печатать нечего..
53. Lis1904 27.08.09 17:36 Сейчас в теме
55. Ёпрст 1063 27.08.09 17:37 Сейчас в теме
Эээ... Показывайте весь текст отчета, или выложите его куда-нить на файлопомойку..
и ссылку сюда.
58. Lis1904 27.08.09 17:43 Сейчас в теме
60. Ёпрст 1063 27.08.09 18:01 Сейчас в теме
Гы... у вас в списке - всегда один и тот же клиентос - ВыбСубконто1.. оно вам надо ?
1. //Перем Расшифровка
2. Расшифровка.Установить нужно запихать в Сформировать_Колонки ... там где вывод секций..
и пихать в Список нужные значения , полученные из запроса.
61. Lis1904 27.08.09 18:09 Сейчас в теме
//Перем Расшифровка - ремить нельзя все остальное работать не будет.
ВыбСубкотно1 - при выводе таблицы в цикле выводит Субконто1,
ВыбСубкотно2 - при выводе таблицы в цикле выводит Субконто2, смотри процедуру Сформировать()
62. Ёпрст 1063 27.08.09 18:23 Сейчас в теме
Блин.. Ты в Расшифровка (список свой) кидаешь не в цикле.. фирштейн ?
Нужно засунуть внутрь процы вывода колонок..
63. Lis1904 27.08.09 18:29 Сейчас в теме
Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
Ном=Ном+1;
Сформировать_Колонки(Ит, Таб, "Субконто1");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры);
Расшифровка(Ит);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Субконто2");
Расшифровка(Ит);
КонецЦикла;
КонецЦикла;

Неужели так?
65. Ёпрст 1063 27.08.09 18:50 Сейчас в теме
64. Lis1904 27.08.09 18:34 Сейчас в теме
И так не работает. Вот блин.
66. Ёпрст 1063 27.08.09 18:52 Сейчас в теме
Процедура Сформировать_Колонки(Ит, Таб, Стр)
Если Флаг = 0 Тогда
Таб.ВывестиСекцию(Стр+"|Начало");
Ит.ВыбратьСубконто(ВидыСубконто.Договоры, 1);
ТекКлиент=Ит.Субконто(ВидыСубконто.Контрагенты);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
Если ТекКлиент.ЭтоГруппа()=1 Тогда
Контр=Ит.Субконто(ВидыСубконто.Договоры).Владелец;
Иначе
Контр=ТекКлиент;
КонецЕсли;
////====================================
Расшифровка.Установить("Субконто1",Контр);
//=======================================
Таб.ПрисоединитьСекцию(Стр+"|Субконто1");
КонецЦикла;
69. Lis1904 27.08.09 19:05 Сейчас в теме
67. Lis1904 27.08.09 18:56 Сейчас в теме
Погодь, я уже так делал.
Субконто2 не выводится.
70. Ёпрст 1063 28.08.09 08:18 Сейчас в теме
(67) Еще бы.. нужно и её запихать в расшифровку..
(69) что именно ?
Клиентос появился ?

Лень смотреть на простыню, кидай свой отчет на webfile.ru ссылку сюда.
68. Lis1904 27.08.09 18:58 Сейчас в теме
71. Lis1904 31.08.09 09:31 Сейчас в теме
72. Ёпрст 1063 31.08.09 11:06 Сейчас в теме
73. Lis1904 31.08.09 11:34 Сейчас в теме
74. Ёпрст 1063 31.08.09 13:31 Сейчас в теме
75. Lis1904 31.08.09 16:36 Сейчас в теме
(74)Да получил.
Огромный респект ЕПРСТ. Ну не видел я эту феньку. Говорю же - парюсь.
Единственное при таком коде, нет расшифровки долга из строки по счету.
Будем ваяять - поможешь если что?
Оставьте свое сообщение

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