Реестр НН - 1С Бухгалтерия 7.7 для Украины - Для пользователя - Украинский форум 1C
Украинский форум 1C
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Valerka 
Украинский форум 1C » Для пользователя » 1С Бухгалтерия 7.7 для Украины » Реестр НН
Реестр НН
VavaДата: Суббота, 28.06.2008, 12:55 | Сообщение # 1
Подполковник
Группа: Пользователи
Сообщений: 134
Репутация: 0
Статус: Offline
Вопросик.
Понадобилось изменить стандартный реестр НН. В частности изменить порядок выводимых строк таблицы и по требованию сворачивать строки с одинаковыми контрагентами.
В стандартном реестре при двойном клике по значению ячейки программа "проваливалась" в книгу (приобретений/продаж).
После реализации описанных выше возможностей (строки перехватывались перед выводом, заносились в таблицу значений, обрабатывались и только потом выводились) эта функция пропала sad
Почему и как вообще ЭТО работает?
Спасибо!
 
ivisorДата: Суббота, 28.06.2008, 20:52 | Сообщение # 2
Генерал-полковник
Группа: Проверенные
Сообщений: 1049
Репутация: 98
Статус: Offline
Работало это через расшифровку - у ячейки в свойствах в атрибуте "Расшифровка" пишется #Расшифровка. Это обычно список значений, который заполняется перед выводом ячейки/строки. Когда потом на ячейку таблицы нажимаешь мышкой - вызывается глоб. процедура обработки Процедура ОбработкаЯчейкиТаблицы(Расшифровка, СтандартнаяОбработка, Таблица) В ней в зависимости от содержимого Расшифровки вызывается/открывается тот или иной объект/отчет конфигурации. Т.е.:
1. У ячейки табл. в "Расшифровка" пишем #Расшифровка.
2. В модуле из которого формируем данные таблицы, до вывода ячейки пишем:
Code

Расшифровка = СоздатьОбъект("СписокЗначений");
Расшифровка.ДобавитьЗначение("..."); // Здесь добавляется все данные, которые необходимиы
...
Расшифровка.ДобавитьЗначение("..."); // для вызываемого по расшифровке объекта

Какие данные нужны для расшифровки можно посмотреть в процедуре ПриОткрытии() модуля того объекта, который планируется вызывать по расшифровке. (Можно подсмотреть в стандартном отчете, где уже реализована расшифровка этого объекта)
3. По нажатию на ячейку вызывается глоб. предопред. процедура ОбработкаЯчейкиТаблицы(), где определяется какой же именно оъект открывать при расшифровке и собственно открывает форму этого объекта. Кроме того здесь важны еще 2 строки:
Code
  глРасшифровка = Расшифровка;
   глФлагРасшифровки = 1;
   глОбновить = Число(Расшифровка.Получить("Обновить"));
   Если глОбновить <> 0 Тогда
    глТаблица = Таблица;
   КонецЕсли;

В первой - переданные параметры расшифровки передаются глобальной переменной глРасшифровка, из которой получают данные все/любой объект использующий расшифровку в т.ч. и по кнопке "Обновить" (тогда объект вызывает сам себя в кач. расшифровки).
Во вотрой - глФлагРасшифровки - устанавливает признак наличия данных в расшифровке (говорит что при открытии данные надо брать из расшифровки)
Далее - получет признак обновления и если он не равен 0, то получает таблицу которую нужно обновить (Это все для того чтобы работала кнопка "Обновить" в шапке таблицы).

4. В модуле открываемого объекта в процедуре ПриОткрытии() проверяется - если глФлагРасшифровки = 1 то параметры отчета получаются из списка глРасшифровка.


Чтобы получить перечень доступных обновлений отошлите пустое письмо на адрес: 1c_download@bk.ru
Впишите нужный пункт в тему письма для 1c_download@bk.ru и получите ссылку на закачку.
 
VavaДата: Понедельник, 30.06.2008, 15:23 | Сообщение # 3
Подполковник
Группа: Пользователи
Сообщений: 134
Репутация: 0
Статус: Offline
Спасибо ivisor !
Но я не до конца разобрался.

Quote
1. У ячейки табл. в "Расшифровка" пишем #Расшифровка.

Я смотрел в отчете, где реализована расшифровка - там нет в свойствах ячеек записи "#Расшифровка" но все работает..?

Quote
2. В модуле из которого формируем данные таблицы, до вывода ячейки пишем:
Code

Расшифровка = СоздатьОбъект("СписокЗначений");
Расшифровка.ДобавитьЗначение("..."); // Здесь добавляется все данные, которые необходимиы
...
Расшифровка.ДобавитьЗначение("..."); // для вызываемого по расшифровке объекта

Какие данные нужны для расшифровки можно посмотреть в процедуре ПриОткрытии() модуля того объекта, который планируется вызывать по расшифровке. (Можно подсмотреть в стандартном отчете, где уже реализована расшифровка этого объекта)

Список значений Расшифровка формируется для всего документа или для каждой строки таблицы в отдельности? И как из этого списка потом извлекаются данные? И если планиуется, к примеру, открыть книгу приобретений, то где посмотреть ее процедуру ПриОткрытии()?
За первый ответ благодарю!

 
ivisorДата: Понедельник, 30.06.2008, 16:22 | Сообщение # 4
Генерал-полковник
Группа: Проверенные
Сообщений: 1049
Репутация: 98
Статус: Offline
Quote
Я смотрел в отчете, где реализована расшифровка - там нет в свойствах ячеек записи "#Расшифровка" но все работает..?

Заметь #Расшифровка ставиться в атрибуте "расшифровка", причем это значение может быть проставлено не во всех ячейках секции (в оборотно-сальдовой, например, расшифровка установлена только в ячейках колонки "Субконто" ).

Чтобы получить перечень доступных обновлений отошлите пустое письмо на адрес: 1c_download@bk.ru
Впишите нужный пункт в тему письма для 1c_download@bk.ru и получите ссылку на закачку.
 
ivisorДата: Понедельник, 30.06.2008, 16:31 | Сообщение # 5
Генерал-полковник
Группа: Проверенные
Сообщений: 1049
Репутация: 98
Статус: Offline
Quote
Список значений Расшифровка формируется для всего документа или для каждой строки таблицы в отдельности?
Расшифровка формируется перед каждой строкой т.к. например ты вывел строку с ТМЦ1 и расшифровка должна вызываться по ТМЦ1, а для ТМЦ2 соответственно должна вызываться расшифровка в которой в параметрах передан ТМЦ2 след. перед выводом строки с ТМЦ нужно в спис. Расшифровка внести значение ТМЦ и остальные параметры.

Quote
И как из этого списка потом извлекаются данные? И если планиуется, к примеру, открыть книгу приобретений, то где посмотреть ее процедуру ПриОткрытии()?

Данные извлекаются из глРасшифровка (как они из Расшифровка в глРасшифровка попадают смотри в п.3 поста №2).
Процедура ПриОткрытии() находится в модуле отчета Отчеты->КнигаПриобретения.
Прикрепления: 7555670.jpg(124Kb)


Чтобы получить перечень доступных обновлений отошлите пустое письмо на адрес: 1c_download@bk.ru
Впишите нужный пункт в тему письма для 1c_download@bk.ru и получите ссылку на закачку.
 
VavaДата: Понедельник, 30.06.2008, 16:37 | Сообщение # 6
Подполковник
Группа: Пользователи
Сообщений: 134
Репутация: 0
Статус: Offline
В колонке "№ з/п" в атрибуте "Расшифровка" стоит значение "Запр.НН#". В теле модуля Запр - созданный запрос, а НН - его группировка. Группировка - грубо говоря список строк значенмий.
Так все таки что происходит при выводе строки? Как работает Расшифровка?
Спасибо
 
ivisorДата: Понедельник, 30.06.2008, 16:53 | Сообщение # 7
Генерал-полковник
Группа: Проверенные
Сообщений: 1049
Репутация: 98
Статус: Offline
Щас посмотрел - в расшифровке строки КнигиПреобретения стоит ЗКП.ТекущийДокумент() - єто значит, что при расшифровке будет передаваться не список Расшифровка, а сразу конкретный документ, и в глобальной процедуре ОбработкаЯчейкиТаблицы() будет сразу открываться форма операции соответствующего документа.Делает это вот такой фрагмент кода:
Code
    Док = Расшифровка.Получить("Документ");
  Если ТипЗначения(Док) <> 0 Тогда
   ОткрытьФорму("Операция",, Док, Расшифровка.Получить("НомерПроводки"),
       Расшифровка.Получить("НомерКорреспонденции"),-1);

Добавлено (30.06.2008, 16:50)
---------------------------------------------
Посмотри отладчиком установив точку останова в начала процедуры: ОбработкаЯчейкиТаблицы()

Добавлено (30.06.2008, 16:53)
---------------------------------------------

Quote
В колонке "№ з/п" в атрибуте "Расшифровка" стоит значение "Запр.НН#"
Это и есть передача в расшифровку ссылки на документ (а не списка с параметрами расшифровки, т.к. в случае документа достаточно передать документ). При этом Запр.НН - должне быть документом, иначе расшифровка не будет работать.
Прикрепления: 4675151.jpg(120Kb)


Чтобы получить перечень доступных обновлений отошлите пустое письмо на адрес: 1c_download@bk.ru
Впишите нужный пункт в тему письма для 1c_download@bk.ru и получите ссылку на закачку.
 
Украинский форум 1C » Для пользователя » 1С Бухгалтерия 7.7 для Украины » Реестр НН
Страница 1 из 11
Поиск: