Перейти к содержимому


Услуги программиста 1С
Профессиональные программисты 1С.
Весь комплекс услуг сопровождения 1С.

Курсы 1С
Бухгалтерам, менеджерам
и программистам.
Бесплатно!
Живое индивидуальное обучение по 1С.

Не работает регл. отчет?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 17

#1   maasja

maasja

      Рядовой

    • Пользователи
    • Сообщений: 5
    • Регистрация: 27-March 11
    • Откуда: , , Украина

Отправлено 27 March 2011 - 18:30

Здравствуйте. У меня при открытия ранее сохраненного файла из произвольного места в конфигурации "Бухгалтерский учет для Украины Бухгалтерия 7.7" есть следующая ошибка. В "Комплексной конфигурации для Украины" этой ошибки нету.
Ошибка:
1. Открываем из меню "Регламентированные отчеты" пункт "Отчет в пенсионный фонд (ЕСВ)". Баг который будет описан ниже также может быть и с другими "отчетами", но не со всеми, по этому выбираем пункт "Отчет в пенсионный фонд (ЕСВ)".
2. Нажимаем "Сохранить как" расширение для файла выбираем ".ERT" (имя файла может быть любым, также при желании можно что нибудь вписать в отчет).
3. Закрываем все окна.
4. Нажимаем "Открыть" или "Cntrl + O" , и выбираем тот файл который мы сохранили в пункте №2.
5. Файл не открывается, наблюдаем ошибку:
Code
спрНиО= СоздатьОбъект("Справочник.ШкалаСтавок");
{C:\file.ERT(2885)}: Неудачная попытка создания объекта ("Справочник.ШкалаСтавок")

Важные детали:
1. Как установлена платформа значения не имеет (Локальная, SQL, и т.д.).
2. С какими константами установлена платформа значения тоже не имеет (пробовал как ставить и все константы, так и только необходимую, в данном случае "Бухгалтерский учёт")
3. Версия кофигурации как я понял, тоже значения не имеет (я пробовал 3 конфигурации "Бухгалтерский учет для Украины Бухгалтерия 7.7", за январь(ред.2.5 7.70.280), февраль(ред.2.5 7.70.281) и март(ред.2.5 7.70.283).
4. Пробовал разные платформы, много раз переустанавливал....

Я попытался понять почему так происходит, и вот что выяснилось:
1. Заходим в конфигуратор, и открываем наш "Не открываемый" ERT файл.
2. В низу нажимаем модуль, и делаем поиск по коду, по слову "ШкалаСтавок".
3. Находим места в коде с этим словом, в моем случае таких мест нашлось два.
1-ый кусок:

Code
    Если ИдентификаторКонфигурации = "UBUTK" Тогда        
    спрНиО = СоздатьОбъект("Справочник.НалогиОтчисления");
    ВидыСубконтоНиО = ВидыСубконто.НалогиОтчисления;
   Иначе                     
    спрНиО = СоздатьОбъект("Справочник.ШкалаСтавок");
    Если ИдентификаторКонфигурации = "UBUOUSL" Тогда   
     ВидыСубконтоНиО = ВидыСубконто.НалогиОтчисления;    
    Иначе
     ВидыСубконтоНиО = ВидыСубконто.ШкалаСтавок;   
    КонецЕсли;
   КонецЕсли;

2-ый кусок:
Code
    // определим идентификатор конфигурации
   спКоманда = СоздатьОбъект("СписокЗначений");
   спКоманда.Установить("ИдентификаторКонфигурации","");
     
   ОткрытьФормуМодально("Отчет",спКоманда,КаталогОтчета+"rpGlob.ert");
   ИдентификаторКонфигурации = спКоманда.Получить("ИдентификаторКонфигурации");

    Если ИдентификаторКонфигурации = "UBUTK" Тогда        
    спрНиО = СоздатьОбъект("Справочник.НалогиОтчисления");
    ВидыСубконтоНиО = ВидыСубконто.НалогиОтчисления;
   Иначе                     
    спрНиО = СоздатьОбъект("Справочник.ШкалаСтавок");
    Если ИдентификаторКонфигурации = "UBUOUSL" Тогда   
     Если Шаблон("[глВключенУчасток(""Расчет"",'"+ДатаВМесяце+"')]") = "Да" Тогда
      Предупреждение("В конфигурации включен учет зарплаты и кадров.
      |Используйте отчет предназначеный для этого режима!", 5);
      СтатусВозврата(0);
      Возврат;
     КонецЕсли;    
     ВидыСубконтоНиО = ВидыСубконто.НалогиОтчисления;    
    Иначе
     ВидыСубконтоНиО = ВидыСубконто.ШкалаСтавок;   
    КонецЕсли;
   КонецЕсли;

Объяснение:
Переменная "ИдентификаторКонфигурации", должна была бы иметь идентификатор конфигурации (в случае "Бухгалтерия для Украины" это "UBUTK"), это значение она должна была б получить с функции "глИдентификаторКонфигурации()". В коде если переменная "ИдентификаторКонфигурации" имеет значение "UBUTK", то должен загружаться объект "Справочник.НалогиОтчисления", иначе должен создаваться объект "Справочник.ШкалаСтавок", а справочник "Шкала Ставок" только в комплексной конфигурации.
Вроде все правильно, только если б перед этим почему-то переменной "ИдентификаторКонфигурации" не установили значение пустой строки "" !!!!!!!
Как видно в приведенном мной в начале 2-ого куске кода, переменной "ИдентификаторКонфигурации" устанавливается значение пустой строки, из за чего и происходит ошибка:
Code
// определим идентификатор конфигурации
   спКоманда = СоздатьОбъект("СписокЗначений");
   спКоманда.Установить("ИдентификаторКонфигурации","");

Если вместо:
Code
    спКоманда.Установить("ИдентификаторКонфигурации","");

написать:
Code
    спКоманда.Установить("ИдентификаторКонфигурации",глИдентификаторКонфигурации());
, то все отлично работает.

Есть два вопроса:
1. Проверьте пожалуйста у себя с такой же конфигурацией (я думаю тут много кто такой пользуется), и скажите есть ли у Вас такая же фигня.
2. Я не особо шарю в программировании конфигураций под 1С. Меня интересует, где находится в конфигурации код отвечающей за сохранения файла.
Ну а если кто-то даже знает где нужно подправить конфигурацию чтобы исправить эту ошибку, то я этому человеку буду премного благодарен smile
Всем большое спасибо.

  • 0

#2   Zaval

Zaval

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 1109
    • Регистрация: 26-December 07
    • Откуда: , ,

Отправлено 27 March 2011 - 19:21

biggrin Это называется "вырвать из контекста".
Могу сказать по секрету, что без rpglob.ert под боком не только этот отчет чудить начинает)
Это комплект регл. отчетности - и в комплекте все работает.

ЗЫ. Употребление в названии темы таких слов как "глюк", "баг" - очень нехорошая примета smile

  • 0
Киев

#3   maasja

maasja

      Рядовой

    • Пользователи
    • Сообщений: 5
    • Регистрация: 27-March 11
    • Откуда: , , Украина

Отправлено 27 March 2011 - 19:39

Quote (Zaval)
Это называется "вырвать из контекста".
- не понял что именно. Вроде все детально описал...
Файл
Quote (Zaval)
rpglob.ert
есть и находится он в папке с конфигурацией "C:\Program Files\1Cv77\1SBUKR\ExtForms\Rp11q1.grp\rpglob.ert"
Quote (Zaval)
таких слов как "глюк", "баг" - очень нехорошая примета
- согласен, не хочу следовать плохим приметам, но я на самом деле думал что нашел баг, а не лишь ради того чтобы к теме привлечь внимание. Как назвать тему?
Жду помощи по этой ошибке.

#4   Ardi

Ardi

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 958
    • Регистрация: 27-January 09
    • Откуда:Столица

Отправлено 27 March 2011 - 19:42

http://lurkmore.ru/С...иска_Глубинного _%D0%A1%D0%BC%D1%8B%D1%81%D0%BB%D0%B0

  • 0

#5   5_kopeek

5_kopeek

      Генерал-лейтенант

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 608
    • Регистрация: 31-January 11
    • Откуда:Украина

Отправлено 27 March 2011 - 19:42

maasja, то, что Вы называете ошибкой, на самом деле ошибкой не является. Отчет хранится и вызывается из папки с регламентированными отчетами, поэтому и написан с учетом того, что он находится именно там. Для определения вида конфигурации используется обработка rpGlob.ert, которая находится в том же каталоге регламентированных отчетов. А когда Вы непонятно для чего сохраняете отчет неизвестно куда, а потом его оттуда запускаете, он не может найти в этом неизвестном месте указанную выше обработку и, соответственно, не определяет вид конфигурации, т.е. ИдентификаторКонфигурации="". Поэтому алгоритм реализовывается по ветке Иначе:

Code

  Если ИдентификаторКонфигурации = "UBUTK" Тогда       
   спрНиО = СоздатьОбъект("Справочник.НалогиОтчисления");
   ВидыСубконтоНиО = ВидыСубконто.НалогиОтчисления;
  Иначе                    
   спрНиО = СоздатьОбъект("Справочник.ШкалаСтавок");
..................................................
  КонецЕсли;

и ищет справочник ШкалаСтавок.
В комлексной конфигурации все происходит точно так же, но это незаметно, поскольку справочник ШкалаСтавок в ней присутствует.
Посему возникает 1 вопрос:
1. Зачем пересохранять отчет в неизвестное место?
и 2 предложения:
1. Если уж так надо, сохраняйте туда еще и служебную обработку (а, может, еще чего понадобится);
2. Или сохраняйте под другим именем в тот же каталог, где находится оригинальный отчет, если Вы занимаетесь редактированием этого отчета.
  • 0

Услуги программиста 1С


#6   tttbuh

tttbuh

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 107
    • Регистрация: 04-June 09
    • Откуда: , ,

Отправлено 27 March 2011 - 19:44

maasja, а отчет для какой цели сохраняем?Для ПФ, внутренний, переслать кому-то?
  • 0

#7   5_kopeek

5_kopeek

      Генерал-лейтенант

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 608
    • Регистрация: 31-January 11
    • Откуда:Украина

Отправлено 27 March 2011 - 19:45

Как всегда, пока писала ответ и говорила по телефону, уже успели ответить до меня smile
  • 0

Услуги программиста 1С


#8   Zaval

Zaval

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 1109
    • Регистрация: 26-December 07
    • Откуда: , ,

Отправлено 27 March 2011 - 19:46

Отчет. Вы его безжалостно вырвали из привычного окружения, лишив возможности пообщаться с rpglob.ert, хотя обращение к нему вполне понятно написано в четвертой строке второго приведенного Вами "куска кода".
  • 0
Киев

#9   Ardi

Ardi

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 958
    • Регистрация: 27-January 09
    • Откуда:Столица

Отправлено 27 March 2011 - 19:46

(0) Но объем проделаной работы поражает. Такое бы упорство, да в нужное русло....
  • 0

#10   Zaval

Zaval

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 1109
    • Регистрация: 26-December 07
    • Откуда: , ,

Отправлено 27 March 2011 - 19:58

Quote (Ardi)
Но объем проделаной работы поражает. Такое бы упорство, да в нужное русло....

Говорю, же - название темы подвело. Было б что-то в духе "Почему у меня не работает?" - в две фразы можно было уложиться и получить ответ...
А так - вдохновенное открытие исключительно за счет "свежего взгляда" biggrin

  • 0
Киев

#11   maasja

maasja

      Рядовой

    • Пользователи
    • Сообщений: 5
    • Регистрация: 27-March 11
    • Откуда: , , Украина

Отправлено 27 March 2011 - 20:22

Уважаемые модераторы, переименуйте пожалуйста тему, пока меня тут не съели.
Всем кто дал ответ большое спасибо.
Меня попросили установить 1с, и я вот уже второй день разбираюсь что и как (кончено же первыми вопросами были, что такое конфигурация, какую версию платформы ставить, и т.д. и т.п.).
Достаточно далеко продвинулся в этом смысле (как оказалось больше чем некоторые бухгалтеры которые работают 9 лет в этой программе).
Я конечно не бухгалтер, но думал что такой операцией как "Сохранить файл как" пользуются очень часто с целью-ями:
1. Отправить кому-то файл по почте.
2. ПФ.
3. Перекинуть с одного компа на другой.
4. Просто созранить одну из версий, чтобы пото можно было открыть и доработать.
5. Сделать бэкап и т.д.

Сначала пытался сам разобраться, погуглил, у двух людей была такая же ситуация (и им ответа не дали).
По скольку я программирую для web-а, то стало интересно что такое "программировать на 1c", и по этому не было особой трудностью заглянуть в код сохраненного файла (и "обнаружить" ошибку. заметьте обнаружить в кавычках). Когда вместо "спКоманда.Установить("ИдентификаторКонфигурации","");" написал "спКоманда.Установить("ИдентификаторКонфигурации",глИдентификаторКонфигурации());" (тоже пришлось погуглить чтобы узнать как узнать конфигурацию) - и оно заработало, отсюда и мысль о баге.
Quote (Ardi)
(0) Но объем проделаной работы поражает. Такое бы упорство, да в нужное русло....

Не думал что проделанная работа будет напрасной. Кто знает, а вдруг я из-за этого когда-то стану 1с программистом))
Вопросы по теме:
1. А вообще, зачем тогда нужна функция "Сохранить как"? Кто-то ей пользуется?
2. Для того чтобы открытие файла работало, нужно к нему в папку кинуть rpglob.ert ?
P.S.Ardi, Видео на ютубе ржака, добавил в закладки )) (никакого отношения ко мне не имеет)
  • 0

#12   Zaval

Zaval

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 1109
    • Регистрация: 26-December 07
    • Откуда: , ,

Отправлено 27 March 2011 - 20:53

Отчет(этот самый файлик) - всего лишь инструмент для извлечения и обработки данных. ПФ он уж точно не заинтересует.
А вот данные отчета - нечто другое, там для этого кнопки Сохранить и СохранитьВФормате... предусмотрены. Сам файлик от заполнения никак не меняется.
1. Сохранение во внешние файлы печатных форм(доков, отчетов), их фрагментов, текстов.
2. Его нужно открывать там, где он есть. Если нужно поправить - то перед началом скопировать, нпр, в ЭкстФормс оригинальную версию.
  • 0
Киев

#13   maasja

maasja

      Рядовой

    • Пользователи
    • Сообщений: 5
    • Регистрация: 27-March 11
    • Откуда: , , Украина

Отправлено 27 March 2011 - 21:43

Zaval, большое спасибо! Я извиняюсь кончено, но я кое что не понял sad
Как я заметил кнопка сохранить активна только когда открыть какой-нибудь регламентированный отчет. То что отчет можно сохранить как файл .mxl и после этого его открыть в другой программе - это я понимаю.
Как я понял файл ert, это как psd в фотошопе, т.е. со всей введенной информацией и своим видом(типом). Но зачем тогда можно сохранять отчет в файл формата .ert если его потом обычный юзер не может открыть?
И еще, например в конфигурации для росии отчет сохраняется и открывается из любого места, почему?
Quote (Zaval)
, там для этого кнопки Сохранить и СохранитьВФормате...
-где они shy ?
Спасибо.

Добавлено (27.03.2011, 22:43)
---------------------------------------------
Первый пост подправил (теперь это не баг smile ). Модераторы переименуйте пожалуйста тему на "Ошибка при открытии файла Неудачная попытка создания объекта ("Справочник.ШкалаСтавок")" или назовите ее на свое усмотрение.

  • 0

#14   pepe

pepe

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 1148
    • Регистрация: 12-April 08
    • Откуда: , ,

Отправлено 27 March 2011 - 22:11

Quote (maasja)
Но зачем тогда можно сохранять отчет в файл формата .ert если его потом обычный юзер не может открыть?

Абсолютно неправильное утверждение. В .ert сохраняют програмный код как внешний отчет, а меню сохранить как используется для сохранения результатов работы програмных модулей, в частности и внешних - .ert. Она не всегда активна, а зависит от других параметров если глубже копать.
  • 0
Спасибо не надо, помог - есть "+" в репутацию.

#15   Zaval

Zaval

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 1109
    • Регистрация: 26-December 07
    • Откуда: , ,

Отправлено 27 March 2011 - 22:22

Стоп. Файл .ert содержит код и таблицы(пустые). Открыть его в режиме Предприятие - это запустить на выполнение. Никакие изменения в этом режиме в него внести нельзя. И сохранять его - абсолютно бестолку. Юзеры этот файл просто используют. Они могут оперировать только данными, которые соберет отчет.
Кнопки сохранения - на самой форме отчета, возле Загрузить и на поле отчета. Могут быть скрыты, пока отчет не заполнен.
Этот тоже будет работать из любого места, если "научить" его работать самостоятельно.

Открыть этот файл для редактирования и сохранить изменения можно в Конфигураторе.

  • 0
Киев

#16   Ardi

Ardi

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 958
    • Регистрация: 27-January 09
    • Откуда:Столица

Отправлено 27 March 2011 - 23:20

Quote
Достаточно далеко продвинулся в этом смысле (как оказалось больше чем некоторые бухгалтеры которые работают 9 лет в этой программе).

Это только потому что мальчики отличаются от девочек.

Quote
2. С какими константами установлена платформа значения тоже не имеет (пробовал как ставить и все константы, так и только необходимую, в данном случае "Бухгалтерский учёт")

Компонентами а не константами.

Quote
3. Версия кофигурации как я понял, тоже значения не имеет (я пробовал 3 конфигурации "Бухгалтерский учет для Украины Бухгалтерия 7.7", за январь(ред.2.5 7.70.280), февраль(ред.2.5 7.70.281) и март(ред.2.5 7.70.283).

Это называется "Релизы конфигурации" а не версии.

Это я тебе как потенциальному "Кто знает, а вдруг я из-за этого когда-то стану 1с программистом))" придираюсь.
cool


#17   ivisor

ivisor

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1438
    • Регистрация: 06-March 08
    • Откуда:Планета Земля

Отправлено 28 March 2011 - 00:09

maasja, регламентированные отчеты не самое лучшее место для начала изучения 1с smile имхо.
Ну, а если уж очень надо, то на мой взгляд следует учесть некоторые нюансы.
В общем случае отчет/обработка(особых отличий между ними нет) имеют 3 составляющие:
1. Форма диалога
2. Модуль, в котором написан код.
3. Шаблон таблицы для вывода результата (обычно виде печатной формы).
(п.3 может не быть если обработка просто выполняет некие действия но не формирует печатную форму)

Когда отчет сформирован (выполнился код модуля, который на основании шаблона построил печатную форму), тогда ее (печатную форму) можно сохранить как MXL или XLS файл (по сути это и будет аналог экселевской странички MXL тоже читается экселем). А сам отчет (комплект из модуля и шаблона) хранится в ert-файле.
Но у регламентированных отчетов есть нюанс!
В них шаблон печатной формы используется интерактивно и при выполнении расположен в диалоге формы а не выводится отдельной таблицей (есть такая фишка в 1с) Т.е. шаблон-таблица используется не только для вывода но и для ввода данных (как в экселе, когда макрос читает содержимое ячеек) поэтому часто в таких отчетах существуют 2 шаблона. 1-ый для ввода информации (и последующей выгрузки в ХМL) а второй для печати отчета и/или пустого бланка.

Общий принцип работы таков:
Открывается ert файл.
Выполняется кусок кода модуля "при открытии" формы.
По нажалию кнопки происходит заполнение данными из информационной базы (из справочников, бухитогов, регистров, журнала расчетов) таблицы-шаблона, лежащей на форме диалога.
Производится ручная правка данных в таблице-шаблоне.
По нажатию кнопки (или картинки дискеты) происходит выполнение кода модуля, который читает данных из таблицы-шаблона и формирует или
ХМL, DBF файл, или печатную форму (обычно из дополнительного шаблона-таблица в ert-файле) который можно печатать или сохранить как MXL или XLS файл.

В случае обычного отчета все немного проще:
Открывается отчет - выполняется код модуля при открытии.
Нажимаешь Ок/Сформировать - выполняется можуль кода, который читает данные из иформационной базы,
и постепенно выводит секции шаблона-таблицы, формируя печатную форму.
В конце сформированная форма показывается на экран.
Дальше можно печатать или сохранять как MXL или XLS файл (кстати как ТХТ тоже можно - должне получится файл с разделителями в виде табуляции, но я делал это только программно)

  • 0

#18   maasja

maasja

      Рядовой

    • Пользователи
    • Сообщений: 5
    • Регистрация: 27-March 11
    • Откуда: , , Украина

Отправлено 30 March 2011 - 06:31

Quote (Ardi)

Quote (maasja)
2. С какими константами установлена платформа значения тоже не имеет (пробовал как ставить и все константы, так и только необходимую, в данном случае "Бухгалтерский учёт")

Компонентами а не константами.


Тьфу, блин, да знаю что компоненты, а не константы (к сожалению подправить уже не могу sad ) )) Сам не знаю почему-так написал, наверное уже мозги расплавились, пока все о 1С изучал (PHP и JavaScript изучать было куда легче wink ) !

А так в общем, вроде уже все понял. Если будут вопросы буду писать)
Всем большое спасибо, особенно Zaval и ivisor.



Обратно в Программирование и конфигурирование 1С Предприятия 7.7

Похожие темы

  Название темы Автор Статистика Последнее сообщение



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных