Имя: Пароль:
1C
1C 7.7
v7: БУ 4.5 Книга учета доходов и расходов - ОбработкаЯчейкиТаблицы
0 YurAnt
 
24.10.13
14:32
Доброго времени суток, господа-форумчане. Вопрос следующий:
Есть "Книга учета доходов и расходов" в ней обработка открытия документа по тыку на ячейку (код см. ниже). Возникла необходимость переделать книгу т.о. чтобы помимо "Выписок" в неё попадали еще и "Бухгалтерские Справки". Вроде бы сделать сделал... вот только по клику на ячейку открываются всё так же "Выписки" вне зависимости от того какой документ в строке...

в чем может быть соль?

Процедура ОбработкаЯчейкиТаблицы(Значение, ФлагСтандОбраб, Таблица, Адрес)
    
    Перем Документ, НомерСтрокиДок, СписокПараметров;
    
    ФлагСтандОбраб = 1;
    
    Если ТипЗначенияСтр(Значение) = "СписокЗначений" Тогда
        
        ФлагСтандОбраб = 0;
        
        Документ       = Значение.Получить("Документ");
        НомерСтрокиДок = Значение.Получить("НомерСтроки");
        
        СписокПараметров = СоздатьОбъект("СписокЗначений");
        СписокПараметров.Установить("НомерСтроки", НомерСтрокиДок);
        
        ОткрытьФорму(Документ, СписокПараметров);
    
    ИначеЕсли ТипЗначенияСтр(Значение) = "Число" Тогда
        ФлагСтандОбраб = 0;
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Раздел1");
        НомерПП = ТаблУчета.ПолучитьЗначение(Значение,"НомерПП");
        
        Если Дата2 >= '26.05.2006' Тогда
            ЗаголовокДоходы  = "Доходы, учитываемые при исчислении налоговой базы";
            ЗаголовокРасходы = "Расходы, учитываемые при исчислении налоговой базы";
        Иначе                                                                        
            ЗаголовокДоходы  = "Доходы";
            ЗаголовокРасходы = "Расходы";
        КонецЕсли;
        
        Таб.ВывестиСекцию("ШапкаРасш|Основная");
        Таб.ПрисоединитьСекцию(?(РежимПечатиГраф4и6 = 3, "ШапкаРасш|Режим3","ШапкаРасш|Режим12"));
        ТабРасшифровка = ТаблУчета.ПолучитьЗначение(Значение,"ТабРасшифровка");
        ТабРасшифровка.ВыбратьСтроки();
        Пока ТабРасшифровка.ПолучитьСтроку()=1 Цикл
            ПечОписание       = ТабРасшифровка.Описание;
            ПечДоходы       = ФорматС(ТабРасшифровка.Доходы);
            ПечРасходы      = СокрЛП(ФорматС(ТабРасшифровка.Расходы))+
                            ?(ТабРасшифровка.ВалСумма>0,РазделительСтрок +"("
                                + СокрЛП(ФорматС(ТабРасшифровка.ВалСумма)) +" " + ТабРасшифровка.Валюта+")","")+
                            ?(ТабРасшифровка.НДС>0,РазделительСтрок +"в т.ч. НДС "+РазделительСтрок+ СокрЛП(ФорматС(ТабРасшифровка.НДС)),"")+
                            ?(ТабРасшифровка.НДС>0,РазделительСтрок +"без НДС "+РазделительСтрок+ СокрЛП(ФорматС(ТабРасшифровка.Расходы - ТабРасшифровка.НДС)),"");
            ПечДоходыБУ       = ФорматС(ТабРасшифровка.ДоходыБУ);
            ПечРасходыБУ      = ФорматС(ТабРасшифровка.РасходыБУ);
            Таб.ВывестиСекцию("СтрРасш|Основная");
            Таб.ПрисоединитьСекцию(?(РежимПечатиГраф4и6 = 3, "СтрРасш|Режим3","СтрРасш|Режим12"));
        КонецЦикла;
        ПечДоходы       = ФорматС(ТаблУчета.ПолучитьЗначение(Значение,"Доходы"));
        ПечРасходы      = ФорматС(ТаблУчета.ПолучитьЗначение(Значение,"Расходы"));
        ПечДоходыБУ       = ФорматС(ТаблУчета.ПолучитьЗначение(Значение,"ДоходыБУ"));
        ПечРасходыБУ      = ФорматС(ТаблУчета.ПолучитьЗначение(Значение,"РасходыБУ"));
        Таб.ВывестиСекцию("ИтогРасш|Основная");
        Таб.ПрисоединитьСекцию(?(РежимПечатиГраф4и6 = 3, "ИтогРасш|Режим3","ИтогРасш|Режим12"));
        Таб.ТолькоПросмотр(1);
        Таб.ПараметрыСтраницы(,,, 10, 0, 0, 0,,,,,);
        Таб.Опции(0, 0, 2, 0, "РасшифровкаСтроки");                      
        Таб.ОбластьПечати(1,2,,);
        Таб.Показать("Расшифровка строки КУДиР "+Значение);
    КонецЕсли;

КонецПроцедуры
1 zak555
 
24.10.13
14:33
КУДиР в обычной бухии ? о_О
2 YurAnt
 
24.10.13
14:34
полагаю соль в
Документ = Значение.Получить("Документ");
а если быть более точнымто даже в "Значение", к-е является списком значений...
3 YurAnt
 
24.10.13
14:35
(1) ага) самописи много тут... а мне разгребать(
4 YurAnt
 
24.10.13
14:45
а поскольку я 4й день как на 7ку с 8ки свалился... в голове ад и израиль.

Вот как отловить почему даже при тыке на строке содержащий номер/дату бух.справки цепляется Выписка ?
http://savepic.su/3606978.png

даже уже через отладчик залез... а вот где идет подвязка именно к Выпискам как типу документа, не могу понять...
5 zak555
 
24.10.13
14:45
(4) я не телепат
6 YurAnt
 
24.10.13
14:55
есть ли в семерке подвязка списка значений к определенному типу документов?
7 vladko
 
24.10.13
15:02
в свойствах ячейки есть параметр расшифровки, даже 2 в разных ячейках в строке. Посмотри чем он заполнен в момент вывода строки по бух.справке
8 YurAnt
 
24.10.13
15:18
(7) подскажите, каким образом это можно отследить?
9 YurAnt
 
24.10.13
15:19
параметр есть, при просмотре из конфигуратора он пуст.
а как его отследить во время отладки? (если вы это имеете в виду)
10 YurAnt
 
24.10.13
15:23
судяпо всему отрабатывает стандартная процедура ОбработкаЯчейкиТаблицы (код к-й я привел выше)
но вот откуда в неё попадают параметры... я не могу отследить даже в отладке( либо я просто чего-то недопонимаю...
11 hhhh
 
24.10.13
15:31
(10) а разве в синтакспомощнике не написано, откуда попадают эти параметры?
12 YurAnt
 
24.10.13
15:35
(11)
Синтаксис:
Расшифровка(<Значение>,<РежимИспользования>)
Назначение:
Установить расшифровку области. Возвращает текущее значение расшифровки.
Параметры:
<Значение> -  необязательный параметр. Новое значение расшифровки области.
<РежимИспользования> - необязательный параметр. Число: 0 - обычный режим; 1 - установить данную расшифровку для всей строки; 2 - не вызывать расшифровку для данной ячейки.  Значение по умолчанию - 0.

очень содержательно(
13 YurAnt
 
24.10.13
15:36
это расшифровка. она расшифровывает.
14 hhhh
 
24.10.13
15:38
(12) вообще-то Расшифровка и ОбработкаЯчейкиТаблицы это два разных слова.
15 YurAnt
 
24.10.13
15:41
отладка даблклика по строке книги начинается с обработки в глобальном модуле

Процедура глПроверкаРазрешенияРедактирования(Конт) Экспорт
    Если Конт.Выбран() = 1 Тогда
        Если (Конт.ДатаДок <= Константа.ДатаЗапретаРедактирования) и (Конт.Форма.ТолькоПросмотр() = 0) Тогда
            Конт.Форма.ТолькоПросмотр(1);
            Предупреждение("Разрешен только просмотр документа!", 4);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

у параметра "Конт" есть реквизиты дата и номер документа...
судя по всему на него обработка и ссылается по тыку на строку, но опять же... откуда они передаются ???
http://savepic.su/3667421.png
16 YurAnt
 
24.10.13
15:43
(14) благодарю... копаю в данном направлении
17 VladZ
 
24.10.13
15:53
(0) Скинь конфу с обработкой на почту - гляну.
18 vladko
 
24.10.13
16:12
(8) находишь нужную секцию в макете. Заходишь в свойства ячейки. Там в поле расшифровка написан идентификатор переменной, отвественной за расшифровку.
Потом ищешь в модуле место, где .вывестиСекцию(<названиесекции>) и в отладчике, когда выводится строка по бух.справке, смотри что там в этом параметре. У тебя наверное по какой-то причине там содержится предыдущая выписка.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан