Имя: Пароль:
1C
1C 7.7
v7: Не работает отчет
, ,
0 balak05
 
14.11.13
09:34
Здравствуйте. У одного пользователя не открывается отчет. У остальных он работает. Скопировал базу, дал пользователю админские права, попытался отладчиком пройтись, и отчет ОТКРЫЛСЯ. Зашел под этим пользователем в режиме предприятия - и отчет снова не открывается. Может кто нибудь сталкивался с подобным? Ошибка, которую выдает 1с при открытии:
Если ТЗОтбор.НайтиЗначение(ТипОбъекта, СтрокаТЗОтбор, "ТипОбъекта") = 0 Тогда
{Глобальный модуль(4810)}: Неверный идентификатор колонки!
1 Джордж1
 
14.11.13
09:36
Подозреваю что ТЗОтбор восстанавливается из настроек - и там такой колонки нет
2 balak05
 
14.11.13
09:39
(1) Как же тогда у других пользователей он есть? И если через отладчик заходишь он появляется?
3 Chum
 
14.11.13
09:42
(0) есть права на открытие внешних обработок у пользователя?
4 balak05
 
14.11.13
09:45
(3) дал админские права на копии чтобы отладчиком проверить можно было. Обработка не внешняя
5 Ёпрст
 
14.11.13
09:47
(2) цдали сохраненные настройки пользователя - усё откроется.
6 Ёпрст
 
14.11.13
09:47
*удали
7 Стрелок
 
14.11.13
09:48
код приоткрытии покажи
8 Стрелок
 
14.11.13
09:49
подозревая что у этого юзера есть ещё отчет где сохраняется ТЗОтбор, но без это колонки. или ещё проще - тзотбор для этого юзера отсутствует в сохраненных. автор глянь - есть ли привязка этого пользователя к его личному каталогу в списке пользователей
9 balak05
 
14.11.13
09:53
(7) Процедура ПриОткрытии() //предопределенная
    Перем Тип, Длина, Точность;
    
    Если глПроверкаРаботыМодуля("я_ШаблонОтчета") = 0 Тогда
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
    
    Если Выход = 1 Тогда
        Сообщить("Нет прав на использование отчета <" + ЗаголовокОтчета + ">");
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
    
    Если ПустоеЗначение(ТипОбъекта) = 1 Тогда
        Предупреждение("Данный отчет не может вызываться самостоятельно!",5);
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
    
    ТипОбъекта = СокрЛП(СтрЗаменить(ТипОбъекта,">",""));

    Если Найти(ТипОбъекта, ".") > 0 Тогда
        КонтТип = Лев(ТипОбъекта, Найти(ТипОбъекта, ".") - 1);
        КонтВид = Сред(ТипОбъекта, Найти(ТипОбъекта, ".") + 1);
    Иначе
        КонтТип = ТипОбъекта;
        КонтВид = "";
    КонецЕсли;

    ЗаполнитьСписокНастроек();
    СоздатьТаблицуУровнейОтчетов();
    
    Форма.ИспользоватьЗакладки(1);
    
    Если ABCАнализ = 1 Тогда
        ИмяСлоя = "ABCАнализ";
    Иначе
        ИмяСлоя = "БезФункций";
        Если КонтТип = "Регистр" Тогда
            Если Метаданные.Регистр(КонтВид).ТипРегистра="Остатки" Тогда
                ИмяСлоя = "СФункциями";
            КонецЕсли;
        КонецЕсли;
        ИмяСлоя = "Реквизиты, " + ИмяСлоя;
    КонецЕсли;
    
    Форма.Закладки.ДобавитьЗначение("Основной, Общий, " + ИмяСлоя,    "Основная");
    Форма.Закладки.ДобавитьЗначение("Основной, Фильтр",       "Множественный фильтр");
    Форма.ИспользоватьСлой(Форма.Закладки.ПолучитьЗначение(1), 2);
    Форма.Закладки.ТекущаяСтрока(1);
    Форма.Заголовок(ЗаголовокОтчета);

    ПервоначальныеНастройки();
    
    // Инициализируем реквизиты одиночного отбора
    Если ТипЗначенияСтр(ТЗОдиночныйОтбор) <> "ТаблицаЗначений" Тогда
        ТЗОдиночныйОтбор = СоздатьОбъект("ТаблицаЗначений");
    КонецЕсли;
    ТЗОдиночныйОтбор.ВыбратьСтроки();
    Пока ТЗОдиночныйОтбор.ПолучитьСтроку() = 1 Цикл
        Если ТЗОдиночныйОтбор.НомерСтроки > 6 Тогда
            Прервать;
        КонецЕсли;
        Форма.ПолучитьАтрибут("тРеквизит" + ТЗОдиночныйОтбор.НомерСтроки).Заголовок(ТЗОдиночныйОтбор.РеквизитСиноним + ":");
        глПолучитьТипРеквизита(ТипОбъекта, ТЗОдиночныйОтбор.Реквизит, Тип, Длина, Точность);
        Форма.ПолучитьАтрибут("ВыбРеквизит" + ТЗОдиночныйОтбор.НомерСтроки).НазначитьТип(Тип, Длина, Точность);
    КонецЦикла;
    Для Ном = ТЗОдиночныйОтбор.КоличествоСтрок()+1 По 6 Цикл
        Форма.ПолучитьАтрибут("тРеквизит" + Ном).Заголовок("");
    КонецЦикла;
    ОбработкаВидимости();
    
    //+
    Если глФлагРасшифровки = 1 Тогда
        Обновить = глОбновить; //  1-Обновить, 2-Настройка
        
        ДатаНач = глРасшифровка.Получить("ДатаНач");
        ДатаКон = глРасшифровка.Получить("ДатаКон");
        ПоказыватьДинамику = глРасшифровка.Получить("ПоказыватьДинамику");
        СписокНастроек.ТекущаяСтрока(глРасшифровка.Получить("СписокНастроек"));
        глРасшифровка.Получить("СписокГруппировок").Выгрузить(СписокГруппировок);
        СписокРазверткиПоГоризонтали.ТекущаяСтрока(глРасшифровка.Получить("СписокРазверткиПоГоризонтали"));
        глРасшифровка.Получить("СписокПоказателей1").Выгрузить(СписокПоказателей1);
        глРасшифровка.Получить("СписокПоказателей2").Выгрузить(СписокПоказателей2);
        глРасшифровка.Получить("СписокФункций").Выгрузить(СписокФункций);
        
        ПриВыбореИзСпискаРазверток();
        
        СписокВидовДиаграмм.ТекущаяСтрока(глРасшифровка.Получить("СписокВидовДиаграмм"));
        
        СписокОбъектовАнализа.ТекущаяСтрока(глРасшифровка.Получить("СписокОбъектовАнализа"));
        СписокПоказателейABC.ТекущаяСтрока(глРасшифровка.Получить("СписокПоказателейABC"));
        ВозрастанияУбывания.ТекущаяСтрока(глРасшифровка.Получить("ВозрастанияУбывания"));
        ПроцентОбъектов = глРасшифровка.Получить("ПроцентОбъектов");
        ПроцентСумм = глРасшифровка.Получить("ПроцентСумм");
        ПроцентСуммB = глРасшифровка.Получить("ПроцентСуммB");
        ПроцентСуммC = глРасшифровка.Получить("ПроцентСуммC");
        СпособАнализа = глРасшифровка.Получить("СпособАнализа");
        
        ПоказыватьГруппы = глРасшифровка.Получить("ПоказыватьГруппы");

        ПриВыбореДиаграммы();
        
        ВыбРеквизит1 = глРасшифровка.Получить("ВыбРеквизит1");
        ВыбРеквизит2 = глРасшифровка.Получить("ВыбРеквизит2");
        ВыбРеквизит3 = глРасшифровка.Получить("ВыбРеквизит3");
        ВыбРеквизит4 = глРасшифровка.Получить("ВыбРеквизит4");
        ВыбРеквизит5 = глРасшифровка.Получить("ВыбРеквизит5");
        ВыбРеквизит6 = глРасшифровка.Получить("ВыбРеквизит6");
        глРасшифровка.Получить("ТаблицаЗначений").Выгрузить(ТаблицаЗначений);
        ФормироватьСводнуюТаблицу = глРасшифровка.Получить("ФормироватьСводнуюТаблицу");
        ИмяОтбора = глРасшифровка.Получить("ИмяОтбора");
        Форма.ИмяОтбора.Заголовок(ИмяОтбора);
        
        глСохранитьЗначениеТекущегоФильтраВТЗ(ТипОбъекта, ТаблицаЗначений, ИмяОтбора, ДатаНач, ДатаКон);
        Форма.УсловияОтбора.Заголовок(глВернутьУсловияОтбораИзТЗ(ТаблицаЗначений));
        ТаблицаЗначений.ВидимостьКолонки("Реквизит", 0,);
        
        ИспользоватьСложныйОтбор();

        Если Обновить <> 0 Тогда
            Таб = глТаблица;
        КонецЕсли;

        Если Обновить <> 2 Тогда
            Сформировать();
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
    Иначе
        Обновить = 0;
    КонецЕсли;
    //-
КонецПроцедуры //ПриОткрытии
10 balak05
 
14.11.13
09:53
(8) Есть
11 balak05
 
14.11.13
09:55
(5) Пробовал уже. Когда из отладчика зашел, удалил. Потом захожу через предприятие - опять эта же ошибка.
12 Стрелок
 
14.11.13
09:57
а вот нехер пользоваться непонятными "супермегауниверсальными" отчетами. видел я такие. черт ногу сломит.

что такое "Выход"?
что такое "типОбъекта"?
13 Стрелок
 
14.11.13
09:58
не увидел в ПриОткрытии "ТЗОтбор"
14 Ёпрст
 
14.11.13
10:00
Сыми галку с ТЗ на форме - сохранять при сохранениии настроек.
15 osa1C
 
14.11.13
10:02
(13) от сюда скорее всего тянется ЗаполнитьСписокНастроек()
16 Стрелок
 
14.11.13
10:02
(15) гадать будем?
17 Стрелок
 
14.11.13
10:02
пока непонятно что это вообще за ТЗ - на форме? переменная локальная, переменная глобальная?
18 VladZ
 
14.11.13
10:02
(9) Смысл идеи понятен. Реализация кривая.
(0) "дал пользователю админские права" - где дал? Скорей всего, права ограничены в функции глПроверкаРаботыМодуля("я_ШаблонОтчета"). См. функцию, и давай пользователю все нужные права.
19 balak05
 
14.11.13
10:20
(12) Все в наследство досталось. старый программист работал 12 лет, потом свалила в банк, теперь сижу разгребаю. Самое главное до этого вообще в 7 не работал
20 balak05
 
14.11.13
10:24
(18) в конфигураторе. Пользователи- права и интерфейс.
21 Стрелок
 
14.11.13
10:25
(19) нет слов..... и куда тогда лезть?
22 balak05
 
14.11.13
10:28
(21) А что делать? Поставили задачу - выполняй
23 Стрелок
 
14.11.13
10:29
самое простое - заведи нового юзера с такими точно правами как у остальных (у которых работает)
24 balak05
 
14.11.13
10:38
(23) И потом манагер меня "съест" ). Ладно, спасибо за помощь, буду дальше разбираться
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn