|
v7: Расшифровка в своем отчете | ☑ | ||
---|---|---|---|---|
0
san4ez1008
31.07.17
✎
09:14
|
Добрый день! Конфигурация ТиС 9.2, написал обработку, выбирающую непроведенные документы за опр.период. В табличке все это дело вывожу, в столбце "Номер документа" нужно сделать так, чтобы было как в ОСВ (двойной клик-открылся документ). Подскажите, как это сделать?
|
|||
1
Масянька
31.07.17
✎
09:17
|
(0) В табличке заполнить поле "Расшифровка". Посмотри, как реализовано в типовых.
|
|||
2
san4ez1008
31.07.17
✎
09:19
|
(1) я Вашу недавнюю ветку читал, так ничего и не понял(( чем заполнять то? у меня не через запрос табличка заполняется, из ТЗ..
|
|||
3
Остап Сулейманович
31.07.17
✎
09:21
|
(2) В ТЗ какие есть колонки?
|
|||
4
san4ez1008
31.07.17
✎
09:21
|
(3) дата документа, номер документа, вид, сумма
|
|||
5
Остап Сулейманович
31.07.17
✎
09:25
|
(4) Для примера вставь в поле "Расшифровка" выражение типа :
ТЗ.ДатаДок, в предприятии посмотри, как будет отрабатывать. Потом добавишь в ТЗ поле, куда будешь вставлять док.ТекущийДокумент() и уже его пропишешь в расшифровку. Глядишь - оно и прояснится. |
|||
6
Дмитрий
31.07.17
✎
09:25
|
(4) в макете в свойствах ячейки поле Расшифровка, пихай туда ссылку на документ
|
|||
7
san4ez1008
31.07.17
✎
09:27
|
(6) запихал , док.текущийдокумент(), кликаю-ничего не открывается
|
|||
8
Остап Сулейманович
31.07.17
✎
09:28
|
(7) Откуда брал "док"? И какого оно типа?
|
|||
9
san4ez1008
31.07.17
✎
09:29
|
(8) кстати о птичках..если у меня в отчете 3 вида документов?
|
|||
10
san4ez1008
31.07.17
✎
09:30
|
отчет такой
Процедура Сформировать() ТЗ.Очистить(); ТЗ.НоваяКолонка("Точка",,,,,43); ТЗ.НоваяКолонка("Дата",,,,,8); ТЗ.НоваяКолонка("N_документа",,,,,10); ТЗ.НоваяКолонка("ВидДокумента",,,,,16); ТЗ.НоваяКолонка("Сумма",,8,2,,9); ТЗ.НоваяКолонка("Склад",,,,,20); ТЗ.НоваяКолонка("Комментарий"); ТЗ.НоваяКолонка("Причина",,,,,1); Док1=СоздатьОбъект("Документ.ВозвратПоставщику"); Док2=СоздатьОбъект("Документ.ПереоценкаРозница"); Док3=СоздатьОбъект("Документ.СписаниеТМЦ"); Док1.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода); Пока Док1.ПолучитьДокумент()=1 цикл Если Док1.Проведен()=0 тогда ТЗ.НоваяСтрока(); ТЗ.Точка=Док1.Склад; ТЗ.Дата=Док1.ДатаДок; ТЗ.N_документа=Док1.НомерДок; ТЗ.ВидДокумента="Возврат"; ТЗ.Сумма=Док1.Итог("Сумма"); ТЗ.Склад=Док1.Контрагент; ТЗ.Комментарий=Док1.Комментарий; ТЗ.Причина=""; КонецЕсли; КонецЦикла; Док2.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода); Сум=0; СумПереоц=0; Пока Док2.ПолучитьДокумент()=1 цикл Если Док2.Проведен()=0 тогда Док2.ВыбратьСтроки(); Пока Док2.ПолучитьСтроку()=1 цикл Сум=Сум+Док2.Количество*(Док2.ЦенаНовая-Док2.ЦенаСтарая); КонецЦикла; СумПереоц=СумПереоц+Сум; ТЗ.НоваяСтрока(); ТЗ.Точка=Док2.Склад; ТЗ.Дата=Док2.ДатаДок; ТЗ.N_документа=Док2.НомерДок; ТЗ.ВидДокумента="Переоценка"; ТЗ.Сумма=СумПереоц; //ТЗ.Склад=Док.Контрагент; ТЗ.Комментарий=Док2.Комментарий; ТЗ.Причина=""; КонецЕсли; КонецЦикла; Док3.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода); Пока Док3.ПолучитьДокумент()=1 цикл Если Док3.Проведен()=0 тогда ТЗ.НоваяСтрока(); ТЗ.Точка=Док3.Склад; ТЗ.Дата=Док3.ДатаДок; ТЗ.N_документа=Док3.НомерДок; ТЗ.ВидДокумента="Списание"; ТЗ.Сумма=Док3.Итог("Сумма"); //ТЗ.Склад=Док.Контрагент; ТЗ.Комментарий=Док3.Комментарий; ТЗ.Причина=""; КонецЕсли; КонецЦикла; Если т=1 тогда ТЗ.Сортировать("Точка+"); иначеесли д=1 тогда ТЗ.Сортировать("Дата+"); иначеесли в=1 тогда ТЗ.Сортировать("Точка+"); КонецЕсли; Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); // Заполнение полей "Заголовок" Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Таб.ВывестиСекцию("Шапка"); Номен=""; Для i=1 по ТЗ.КоличествоСтрок() цикл Точка = ТЗ.ПолучитьЗначение(i,"Точка"); ДатаД = ТЗ.ПолучитьЗначение(i,"Дата"); НомДок = ТЗ.ПолучитьЗначение(i,"N_документа"); ВидДокумента = ТЗ.ПолучитьЗначение(i,"ВидДокумента"); Сумма = ТЗ.ПолучитьЗначение(i,"Сумма"); Склад = ТЗ.ПолучитьЗначение(i,"Склад"); Комментарий = ТЗ.ПолучитьЗначение(i,"Комментарий"); Таб.ВывестиСекцию("Строка|Точка"); Таб.ПрисоединитьСекцию("Строка|Дата"); Таб.ПрисоединитьСекцию("Строка|НомДок"); Таб.ПрисоединитьСекцию("Строка|ВидДок"); Таб.ПрисоединитьСекцию("Строка|СУмма"); Таб.ПрисоединитьСекцию("Строка|Склад"); Таб.ПрисоединитьСекцию("Строка|Комментарий"); Таб.ПрисоединитьСекцию("Строка|Причина"); КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); //ExpotToExcel(); //Форма.ТЗ.Видимость(1); КонецПроцедуры |
|||
11
Fedor-1971
31.07.17
✎
09:32
|
(7) Защита? поиграйся с этим параметром ячейки
Если при 2-ном клике таб.документ входит в режим редактирования ячейки никакая расшифровка не сработает |
|||
12
san4ez1008
31.07.17
✎
09:33
|
(11) таблица только на просмотр
|
|||
13
Остап Сулейманович
31.07.17
✎
09:38
|
(10)
1. ТЗ.Очистить(); ТЗ.НоваяКолонка("Точка",,,,,43); ТЗ.НоваяКолонка("Дата",,,,,8); ТЗ.НоваяКолонка("N_документа",,,,,10); ТЗ.НоваяКолонка("ВидДокумента",,,,,16); ТЗ.НоваяКолонка("Сумма",,8,2,,9); ТЗ.НоваяКолонка("Склад",,,,,20); ТЗ.НоваяКолонка("Комментарий"); ТЗ.НоваяКолонка("Причина",,,,,1); //********************* ТЗ.НоваяКолонка("Док", "Документ"); //********************** ... Док1.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода); Пока Док1.ПолучитьДокумент()=1 цикл Если Док1.Проведен()=0 тогда ТЗ.НоваяСтрока(); ТЗ.Точка=Док1.Склад; ... //**************************** ТЗ.Док = Док1.ТекущийДокумент(); //**************************** КонецЕсли; КонецЦикла; аналогично Док2 и Док3. |
|||
14
Масянька
31.07.17
✎
09:39
|
Однако, какой добрый понедельник :)
|
|||
15
Fedor-1971
31.07.17
✎
09:40
|
(12) у ячейки таблицы установлены флажок "Защита" и параметр "Расшифровка"?
ОбработкаЯчейкиТаблицы() - где обрабатываешь расшифровку? (10) где заполняется, то чего вписано в "Расшифровка"? |
|||
16
SiAl-chel
31.07.17
✎
09:40
|
(0) В ТЗ добавь колонку Ссылка, тип либо произвольный, либо Документ. Добейся, чтобы эта колонка была заполнена ссылками на документы. Посмотри где происходит создание новой строки, и если там есть что-то типа
ТЗ.ДатаДок = Док.ДатаДок; то добавь строку ТЗ.Ссылка = Док.ТекущийДокумент(); В поле Расшифровка свойства ячейки вбей либо ТЗ.Ссылка, либо ТЗ.Ссылка#. Установи программно режим чтения для табличной документа. |
|||
17
Slypower
31.07.17
✎
09:46
|
Через запрос уж лучше переделать. И быстрее будет, и в расшифровку кинуть.
А так использовать Процедуру ОбработкаЯчейкиТаблицы(), в которой вы получаете номер документа, а уже по номеру искать в базе НайтиПоНомеру(), получитьпономеру(). Или все же добавить новую колонку в ТЗ - документ и оттуда брать |
|||
18
san4ez1008
31.07.17
✎
09:48
|
(13) (16) (17) добавил колонку в ТЗ, в расшифровку прописал "ТЗ.Док" - по всем строкам последняя запись в ТЗ
|
|||
19
Fedor-1971
31.07.17
✎
09:50
|
(16) не поможет ТЗ.Ссылка, ТС заполняет параметры
Комментарий = ТЗ.ПолучитьЗначение(i,"Комментарий"); тогда уж так: ТоЧтоХочуВРасшифровку = ТЗ.ПолучитьЗначение(i,"Ссылка"); (17) "Что бы продать что-нибудь ненужное, надо сначала купить что-нибуть ненужное. А у нас денег нет". Одна из серий "Простоквашино" Сначала нечто нужно положить в расшифровку, а потом это нечто обрабатывать в ОбработкаЯчейкиТаблицы(), если ему нет стандартного механизма (18) заполни для каждой строки из ТЗ |
|||
20
Fedor-1971
31.07.17
✎
09:53
|
19+ в "Расшифровка" напиши тебе понятный идентификатор и присвой ему значение для каждой строки.
Будет меньше путаницы и весёлых эффектов |
|||
21
Дмитрий
31.07.17
✎
10:01
|
(18) ТЕКДОК = ТЗ.ПолучитьЗначение(i,"ДОК");
в расшифровку напиши ТекДок |
|||
22
san4ez1008
31.07.17
✎
10:04
|
(21) сделал,все работает. Спасибо всем за помощь!
|
|||
23
Дмитрий
31.07.17
✎
10:05
|
(21) и вообще таблицу значений лучше перебирать при помощи
ВыбратьСтроки() и ПолучитьСтроку() |
|||
24
Калиостро
31.07.17
✎
10:40
|
+(23) если при переборе не происходит удаления строк
|
|||
25
san4ez1008
31.07.17
✎
10:48
|
ребят,еще вопрос, есть 4 переключателя, Если т=1 тогда
ТЗ.Сортировать("Точка+"); иначеесли д=1 тогда ТЗ.Сортировать("Дата+"); иначеесли в=1 тогда ТЗ.Сортировать("ВидДокумента+"); иначеесли скл=1 тогда ТЗ.Сортировать("Склад+"); КонецЕсли; порядок обхода назначил, первый в группе есть, но при выборе 4го переключателя в отладчике он равен 0, как так? |
|||
26
san4ez1008
31.07.17
✎
10:58
|
а,все,понял наконец-то как переключатели работают..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |