Ошибка при вызове метода контекста проверитьвывод 1с

Столкнулся с такой ошибкой, при выводе информации на печатную форму, платформа выдает следующее сообщение:
Ошибка при вызове метода контекста (ПроверитьВывод)…

ПроверитьВывод() — это метод табличного документа, который проверяет, умещаются ли переданные табличные документы на страницу при печати. В примечании у этого метода разработчики платформы 1С сразу написали, что при возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение.

Проверил установленные принтеры, все исправно и работает. Эмпирическим путем выяснил, что данная ошибка возникает только у конкретной печатной формы и только под одним пользователем.

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

1. Помещение ПроверитьВывод в попытку

2) Сформировал печатную форму.

1. Помещение ПроверитьВывод в попытку

2) Сформировал печатную форму.

2. Пустая печатная форма (кол-во товаров = 0)

3) Для текущей печатной формы открыл параметры страницы и установил правильные параметры.

3. Параметры страницы

Ошибка возникала из-за неправильных параметров страницы, которые платформа сохранила ранее при выводе на печать печатной формы, например: платформа сохранила в параметрах страницы принтер, который в дальнейшем удалили и установили новый. Параметры страницы печатной формы хранятся в свойстве табличного документа КлючПараметровПечати. Это свойство содержит ключ значения, в котором сохраняются параметры печати таблицы. Параметры печати, настроенные и сохраненные с данным ключом, впоследствии восстанавливаются при следующем показе таблицы.

Что бы данная ошибка не возникала из-за неправильных параметров страницы, свойство КлючПараметровПечати следует устанавливать не в начале процедуры вывода на печать, а в конце, так как при установке данного свойства параметры печати тут же восстанавливаются.

UPD 04/10/2015: Если устанавливать свойство КлючПараметровПечати в конце формирования табличного документа, то метод ПроверитьВывод будет использовать параметры печати установленные по-умолчанию, а не пользовательские. Что бы избежать данной ситуации, необходимо устанавливать свойство КлючПараметровСистемы в начале формирования табличного документа, а метод ПроверитьВывод поместить в конструкцию Попытка-Исключение-КонецПопытки.

   DTX 4th

20.11.20 — 14:39

1. Сломался метод ПроверитьВывод:

{ВнешняяОбработка.ТестПечати.Форма.Форма.Форма(9)}: Ошибка при вызове метода контекста (ПроверитьВывод)
    Если ТабДок.ПроверитьВывод(Обл) Тогда
по причине:
Ошибка получения информации о принтере

2. При печати пустого табличного документа появляется ошибка «Ошибка при получении характеристик принтера»

https://i.imgur.com/bOAp6MP.png

Пробовали вот что:

— еще две последние версии 8.3.17, а также последню 8.3.18

— чистка кэша

— ОчиститьНастройкиПользователя(ПользователиИнформационнойБазы.ТекущийПользователь())

— устанавливали в реестр дефолтный принтер (Прописали значение ключа «по умолчанию» — «//appServer123/printer008“)

При этом на сервере работает (где стоит сервер 1С), а на пустой локальной файловой базе нет

Кто-нибудь сталкивался? Как лечить?

В списке ошибок платформу тоже пусто.

   DTX 4th

1 — 20.11.20 — 14:41

И отключите уже автоформаттер…

   piter3

2 — 20.11.20 — 14:45

HKCUPrintersDefaults{id}» там чего?

   DTX 4th

3 — 20.11.20 — 14:49

   piter3

4 — 20.11.20 — 14:52

А если нового пользователя завести?

   DTX 4th

5 — 20.11.20 — 15:37

(4) Под новым пользователем все ок..

И что это значит?)

   dka80

6 — 20.11.20 — 15:39

Сбросьте сохраненные настройки пользователя все

   DTX 4th

7 — 20.11.20 — 15:43

(6) В винде? Или как?

Вот это вот

ОчиститьНастройкиПользователя(ПользователиИнформационнойБазы.ТекущийПользователь())

не оно?

Плюс печать не работает даже на только что созданной базе

   DTX 4th

8 — 20.11.20 — 15:48

(5) Я нового пользователя винды сделал, а не 1с

Новый пользователя 1с не поможет

   dmrjan

9 — 20.11.20 — 16:35

Я до сих пор не понимаю — зачем 1с внедрила свой модуль печати. Использовали все родные драйвера принтеров. Все было более менее нормально. Нет нужно извратиться и подсунуть свой обработчик. Теперь нужно указывать — использовать настройки принтера двусторонней печати от 1с или принтера. Зачем плодить сущности?

   dmrjan

10 — 20.11.20 — 16:37

(8) Есть обработка в сети — «ХранилищеНастроек_Чистка». Можешь с помощью нее почистить настройки печати https://all4cf.ru/univof-ochistka_nastroek_polzovateley.html

   dmrjan

11 — 20.11.20 — 16:41

А ещё — может стоит по-умолчанию принтер, который не подключен.

   DTX 4th

12 — 20.11.20 — 16:47

(10) Так я же говорю, что я даже новую базу создал, и оттуда не получается на печать документ отправить

(11) В настройках печати нельзя выбрать ни один принтер

   Ногаминебить

13 — 20.11.20 — 16:54

А не из 1С под этим пользователем печатать можно? А то всякие случаи бывают.

   DTX 4th

14 — 20.11.20 — 16:58

   Lama12

15 — 20.11.20 — 17:15

Точно не ошибка Код ошибки: 10216040?

   DTX 4th

16 — 20.11.20 — 17:18

(15) Точно. Пробовал последнюю 18ую платформу, не работает ни один принтер, включал виртуальные типа Print To OneNote, XPS и т.д

   DTX 4th

17 — 20.11.20 — 18:34

Похоже, не хватает каких-то прав, т.к. под админом все работает.

Есть идеи?

   МимохожийОднако

18 — 20.11.20 — 18:36

Дай админиские права пользователю. После настройки принтера уберешь

   piter3

19 — 20.11.20 — 18:37

(5) значит, что настройки пользователей сохранились

   piter3

20 — 20.11.20 — 18:39

Нси-пользователи, дожди до настроек печатных форм, не помню как точно называется

   FormatC

21 — 20.11.20 — 18:41

ШО… Опять… на любые принтеры не печатает?

во я тему поднимал в ноябре ошибка при печати на принтеры Kyocera

   FormatC

22 — 20.11.20 — 18:43

пришлось тогда откатиться на 8.3.15.30 на ней и сидим

   piter3

23 — 20.11.20 — 18:45

(21) ну погоди, у него вроде другая машинка

   DTX 4th

24 — 20.11.20 — 19:08

(19) Пользователей 1С? Или винды?

Я же говорю, что я создал Новую Пустую Базу, и даже после этого не получается вызвать метод ПроверитьВывод табличного документа.

(21) Даже на Microfost XPS Writer, скрин в (0)

   piter3

25 — 20.11.20 — 19:24

(24) Я бы начал с 1с, но где-то видел, что может прав не хватает в винде. Но настройки пришли старые при распаковке, а движок уже по новому берет. У меня было, но я как-то быстро сделал, потом подованам раздал. Точно помню, реестр и настройки пользователей

   Lea_lbs

26 — 20.11.20 — 19:45

(25) Проблема точно в правах, но как понять в чем конкретно? И где копать?

Если запускать под пользователем, то проблема проявляется.

В случае запуска под админской учетной записью проблемы нет.

Дать всем админов не вариант. В компании более 20 человек такое делать нельзя.

   piter3

27 — 20.11.20 — 19:54

(26) Еще раз, я зачистил для начала бы в 1с настройки печатных форм, потом бы глянул бы на админство, вроде дали не админские коллеги мои

   Провинциальный 1сник

28 — 20.11.20 — 20:02

В 1с начиная с 8.3.16 функции работы с принтером выделены в отдельные приложения 1cv8p32.bin и 1cv8p64.bin, которые запускаются при обращении к принтеру. Это сделано для того, чтобы отвязать основные библиотеки 1с от работы с потенциально нестабильным драйвером принтера. Но некоторые антивирусы запуск таких приложений блокируют. Кроме того, это может быть закрыто политиками безопасности. Проверяйте там.

   d4rkmesa

29 — 20.11.20 — 21:29

Можно попробовать Process Monitor’ом глянуть с фильтром по 1cv8p64.bin и Result is not success. Но это несколько неблагодарное дело, там при запуске Ctrl+P порядка 1500-2000 событий будет, в основном поиск в ветках реестра(хотя и по ним можно отфильтровать). Главное найти то что нужно среди кучи информации.

  

piter3

30 — 20.11.20 — 21:31

(29) Думаю там все проще

  1. Обнаружены ошибки:
    {Документ.РеализацияТоваровУслуг.МодульОбъекта (1155)}: Ошибка при вызове метода контекста (ПроверитьВывод)
    Если Ном <> 1 И НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
    по причине:

    Такая ошибка возникает у одного из пользователей удаленного рабочего стола.

    Если я со своей машины захожу таким же образом под тем же самым пользователем (и системным и пользователем 1С) у меня такая ошибка не возникает.

    что может быть?


  2. Наташа 3. Параметры страницы

    Ошибка возникала из-за неправильных параметров страницы, которые платформа сохранила ранее при выводе на печать печатной формы, например: платформа сохранила в параметрах страницы принтер, который в дальнейшем удалили и установили новый. Параметры страницы печатной формы хранятся в свойстве табличного документа КлючПараметровПечати. Это свойство содержит ключ значения, в котором сохраняются параметры печати таблицы. Параметры печати, настроенные и сохраненные с данным ключом, впоследствии восстанавливаются при следующем показе таблицы.

    Что бы данная ошибка не возникала из-за неправильных параметров страницы, свойство КлючПараметровПечати следует устанавливать не в начале процедуры вывода на печать, а в конце, так как при установке данного свойства параметры печати тут же восстанавливаются.

    UPD 04/10/2015: Если устанавливать свойство КлючПараметровПечати в конце формирования табличного документа, то метод ПроверитьВывод будет использовать параметры печати установленные по-умолчанию, а не пользовательские. Что бы избежать данной ситуации, необходимо устанавливать свойство КлючПараметровСистемы в начале формирования табличного документа, а метод ПроверитьВывод поместить в конструкцию Попытка-Исключение-КонецПопытки.

       DTX 4th

    20.11.20 — 14:39

    1. Сломался метод ПроверитьВывод:

    {ВнешняяОбработка.ТестПечати.Форма.Форма.Форма(9)}: Ошибка при вызове метода контекста (ПроверитьВывод)
        Если ТабДок.ПроверитьВывод(Обл) Тогда
    по причине:
    Ошибка получения информации о принтере
    

    2. При печати пустого табличного документа появляется ошибка «Ошибка при получении характеристик принтера»

    https://i.imgur.com/bOAp6MP.png

    Пробовали вот что:

    — еще две последние версии 8.3.17, а также последню 8.3.18

    — чистка кэша

    — ОчиститьНастройкиПользователя(ПользователиИнформационнойБазы.ТекущийПользователь())

    — устанавливали в реестр дефолтный принтер (Прописали значение ключа «по умолчанию» — «//appServer123/printer008“)

    При этом на сервере работает (где стоит сервер 1С), а на пустой локальной файловой базе нет

    Кто-нибудь сталкивался? Как лечить?

    В списке ошибок платформу тоже пусто.

       DTX 4th

    1 — 20.11.20 — 14:41

    И отключите уже автоформаттер…

       piter3

    2 — 20.11.20 — 14:45

    HKCUPrintersDefaults{id}» там чего?

       DTX 4th

    3 — 20.11.20 — 14:49

       piter3

    4 — 20.11.20 — 14:52

    А если нового пользователя завести?

       DTX 4th

    5 — 20.11.20 — 15:37

    (4) Под новым пользователем все ок..

    И что это значит?)

       dka80

    6 — 20.11.20 — 15:39

    Сбросьте сохраненные настройки пользователя все

       DTX 4th

    7 — 20.11.20 — 15:43

    (6) В винде? Или как?

    Вот это вот

    ОчиститьНастройкиПользователя(ПользователиИнформационнойБазы.ТекущийПользователь())
    

    не оно?

    Плюс печать не работает даже на только что созданной базе

       DTX 4th

    8 — 20.11.20 — 15:48

    (5) Я нового пользователя винды сделал, а не 1с

    Новый пользователя 1с не поможет

       dmrjan

    9 — 20.11.20 — 16:35

    Я до сих пор не понимаю — зачем 1с внедрила свой модуль печати. Использовали все родные драйвера принтеров. Все было более менее нормально. Нет нужно извратиться и подсунуть свой обработчик. Теперь нужно указывать — использовать настройки принтера двусторонней печати от 1с или принтера. Зачем плодить сущности?

       dmrjan

    10 — 20.11.20 — 16:37

    (8) Есть обработка в сети — «ХранилищеНастроек_Чистка». Можешь с помощью нее почистить настройки печати https://all4cf.ru/univof-ochistka_nastroek_polzovateley.html

       dmrjan

    11 — 20.11.20 — 16:41

    А ещё — может стоит по-умолчанию принтер, который не подключен.

       DTX 4th

    12 — 20.11.20 — 16:47

    (10) Так я же говорю, что я даже новую базу создал, и оттуда не получается на печать документ отправить

    (11) В настройках печати нельзя выбрать ни один принтер

       Ногаминебить

    13 — 20.11.20 — 16:54

    А не из 1С под этим пользователем печатать можно? А то всякие случаи бывают.

       DTX 4th

    14 — 20.11.20 — 16:58

       Lama12

    15 — 20.11.20 — 17:15

    Точно не ошибка Код ошибки: 10216040?

       DTX 4th

    16 — 20.11.20 — 17:18

    (15) Точно. Пробовал последнюю 18ую платформу, не работает ни один принтер, включал виртуальные типа Print To OneNote, XPS и т.д

       DTX 4th

    17 — 20.11.20 — 18:34

    Похоже, не хватает каких-то прав, т.к. под админом все работает.

    Есть идеи?

       МимохожийОднако

    18 — 20.11.20 — 18:36

    Дай админиские права пользователю. После настройки принтера уберешь

       piter3

    19 — 20.11.20 — 18:37

    (5) значит, что настройки пользователей сохранились

       piter3

    20 — 20.11.20 — 18:39

    Нси-пользователи, дожди до настроек печатных форм, не помню как точно называется

       FormatC

    21 — 20.11.20 — 18:41

    ШО… Опять… на любые принтеры не печатает?

    во я тему поднимал в ноябре ошибка при печати на принтеры Kyocera

       FormatC

    22 — 20.11.20 — 18:43

    пришлось тогда откатиться на 8.3.15.30 на ней и сидим

       piter3

    23 — 20.11.20 — 18:45

    (21) ну погоди, у него вроде другая машинка

       DTX 4th

    24 — 20.11.20 — 19:08

    (19) Пользователей 1С? Или винды?

    Я же говорю, что я создал Новую Пустую Базу, и даже после этого не получается вызвать метод ПроверитьВывод табличного документа.

    (21) Даже на Microfost XPS Writer, скрин в (0)

       piter3

    25 — 20.11.20 — 19:24

    (24) Я бы начал с 1с, но где-то видел, что может прав не хватает в винде. Но настройки пришли старые при распаковке, а движок уже по новому берет. У меня было, но я как-то быстро сделал, потом подованам раздал. Точно помню, реестр и настройки пользователей

       Lea_lbs

    26 — 20.11.20 — 19:45

    (25) Проблема точно в правах, но как понять в чем конкретно? И где копать?

    Если запускать под пользователем, то проблема проявляется.

    В случае запуска под админской учетной записью проблемы нет.

    Дать всем админов не вариант. В компании более 20 человек такое делать нельзя.

       piter3

    27 — 20.11.20 — 19:54

    (26) Еще раз, я зачистил для начала бы в 1с настройки печатных форм, потом бы глянул бы на админство, вроде дали не админские коллеги мои

       Провинциальный 1сник

    28 — 20.11.20 — 20:02

    В 1с начиная с 8.3.16 функции работы с принтером выделены в отдельные приложения 1cv8p32.bin и 1cv8p64.bin, которые запускаются при обращении к принтеру. Это сделано для того, чтобы отвязать основные библиотеки 1с от работы с потенциально нестабильным драйвером принтера. Но некоторые антивирусы запуск таких приложений блокируют. Кроме того, это может быть закрыто политиками безопасности. Проверяйте там.

       d4rkmesa

    29 — 20.11.20 — 21:29

    Можно попробовать Process Monitor’ом глянуть с фильтром по 1cv8p64.bin и Result is not success. Но это несколько неблагодарное дело, там при запуске Ctrl+P порядка 1500-2000 событий будет, в основном поиск в ветках реестра(хотя и по ним можно отфильтровать). Главное найти то что нужно среди кучи информации.

      

    piter3

    30 — 20.11.20 — 21:31

    (29) Думаю там все проще

    1. Обнаружены ошибки:
      {Документ.РеализацияТоваровУслуг.МодульОбъекта (1155)}: Ошибка при вызове метода контекста (ПроверитьВывод)
      Если Ном <> 1 И НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
      по причине:

      Такая ошибка возникает у одного из пользователей удаленного рабочего стола.

      Если я со своей машины захожу таким же образом под тем же самым пользователем (и системным и пользователем 1С) у меня такая ошибка не возникает.

      что может быть?


    2. Offline

      Наташа
      Опытный в 1С

      Регистрация:
      14 авг 2010
      Сообщения:
      1.442
      Симпатии:
      2
      Баллы:
      29

    3. это все что есть на экране, более ничего сказать не могу.
      это же 1с!!!


    4. Requin

      Offline

      Requin
      Опытный в 1С

      Регистрация:
      10 май 2010
      Сообщения:
      1.911
      Симпатии:
      2
      Баллы:
      29


    5. для того, чтобы сохранить документ в MXL, человеку нужно купить принтер?


    6. Requin

      Offline

      Requin
      Опытный в 1С

      Регистрация:
      10 май 2010
      Сообщения:
      1.911
      Симпатии:
      2
      Баллы:
      29

      P.S. Принтер можете не покупать, просто установите какой-нибудь (файловый).

    7. спасибо, передам ваш совет.
      хотя уважающий себя программист осуществляет проверку на конкретное действие — в данном случае это вывод отчета: КУДА — если на экран — одна ветка, если на принтер — другая.
      я так думаю, что программистам 1с надо пройти начальные курсы по основам построения логики программы, а лучше начать с базовых курсов по информатике.


    8. x_under

      Offline

      x_under
      Модераторы
      Команда форума
      Модератор

      Регистрация:
      25 апр 2007
      Сообщения:
      2.576
      Симпатии:
      16
      Баллы:
      29

      :angry: Ну какой вы агрессивный. Тут же все по принципу: не нравится не ешь.

      Эта функция используется для определения помещается на экран форма или нет. А без принтера, хотя бы виртуального этого не определить. Вдруг вы на А3 или А5 печатаете (ну или на рулоне бумаги)… Так что всем не угодишь.


    9. nomad_irk

      Online

      nomad_irk
      Гуру в 1С

      Регистрация:
      20 окт 2008
      Сообщения:
      9.724
      Симпатии:
      1.014
      Баллы:
      204

      кхм, ну можно было бы возвращать неопределено, в случае, если принтера нет в системе, а не вываливаться в ошибку :)


    10. kallugin

      Offline

      kallugin

      Регистрация:
      22 ноя 2011
      Сообщения:
      1
      Симпатии:
      0
      Баллы:
      1

      UP

      Та же самая ошибка, один в один, но есть нюансы:

      — переустановили Винду на терминальном сервере, был 2008 х86, стал 2008 64, соответственно, драйвера принтеров уже другие

      — документ, в котором всего одна строка, печатается нормально, больше одной — та самая ошибка

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

      Может это быть из-за того, что система запомнила какие-то настройки «с прошлого раза» (у бухгалтеров, которые этот документ печатали)? И как бы их обнулить?


    11. x_under

      Offline

      x_under
      Модераторы
      Команда форума
      Модератор

      Регистрация:
      25 апр 2007
      Сообщения:
      2.576
      Симпатии:
      16
      Баллы:
      29

      Попробуйте базу переподключить.


    12. Настя

      Offline

      Настя

      Регистрация:
      3 июл 2012
      Сообщения:
      1
      Симпатии:
      0
      Баллы:
      1

      {Form.ФормаОтчета.Form(4)}: Ошибка при вызове метода контекста (Add)
      ТабЗН.Колонки.Добавить(«ТипНомера»,»Строка»,»Тип номера»);
      что за ошибка? подскажите пожалуйста


    13. 1cUserAndrew

      Offline

      1cUserAndrew
      Профессионал в 1С
      Команда форума

      Регистрация:
      27 май 2010
      Сообщения:
      5.125
      Симпатии:
      212
      Баллы:
      104

      Второй параметр имеет тип данных «ОписаниеТипов».

      ТабЗН.Колонки.Добавить("ТипНомера", Новый ОписаниеТипов("Строка"), "Тип номера");

    14. qweqweqwe123777

      Offline

      qweqweqwe123777
      Новичок в 1С

      Регистрация:
      30 янв 2015
      Сообщения:
      1
      Симпатии:
      1
      Баллы:
      4

      у меня ошибка получения информации о принтере
      решилась установкой прав на принтер.
      В свойствах принтера на вкладке Безопасность добавил группу пользователей Domain users полные права


    1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

    Содержание

    1. Зависает метод табдока ПроверитьВывод()
    2. ПроверитьВывод() непонятно как то работает
    3. АйТиБложик
    4. Ошибка хитрого метода ПроверитьВывод() табличного документа
    5. Решение проблемы ПроверитьВывод() для огромных документов
    6. Каких результатов удалось достичь
    7. Последовательность действий:
    8. Как это выглядит в программе
    9. Скачать файлы
    10. Специальные предложения
    11. См. также
    12. Безопасная работа с транзакциями во встроенном языке Промо
    13. Пример создания документа с движениями в ERP 2.5.7
    14. Работа с абстрактным массивом
    15. Семеро одного не ждут? Асинхронное исследование асинхронности
    16. Как выполнить отчет на СКД через COM и получить данные отчета? Промо
    17. Связи параметров выбора номенклатуры и характеристики в 1С 8.3
    18. Динамическая расшифровка СКД (на примере отчета)
    19. СКД: все, что вы хотели знать о подмене схемы компоновки данных в отчетах и обработках
    20. Как нарисовать граф на 1С Промо
    21. Cбор и анализ ошибок при помощи Sentry, или как упростить жизнь себе и пользователям
    22. Программная корректировка при выводе отчета СКД
    23. Загрузка, скачивание, удаление файлов с помощью НачатьПомещениеФайлаНаСервер() и НачатьПолучениеФайлаССервера()
    24. Простой способ индексирования интервалов Промо
    25. Универсальная печатная форма Приказа/Договора с возможностью настройки макета в пользовательском режиме
    26. Методика обновления формы объекта данных при изменении объекта
    27. Отправка уведомлений с помощью командной строки, Оповещения с сервера на клиент с помощью командной строки
    28. Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов Промо
    29. Вывод сообщений в HTML поле средствами 1С
    30. Краткое руководство по внесению изменений в конфигурацию
    31. Универсальные функции: разложение произвольной строки адреса в структуру
    32. БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному Промо
    33. «Живые» картинки со Snap.SVG
    34. RLS — дубли условий в запросах к СУБД
    35. Полное копирование одной формы в другую
    36. Некоторая работа с данными через COM Промо
    37. Многопоточная обработка данных на примере перепроведения документов
    38. Отображение истории выполнения по всем задачам комплексного процесса в документообороте
    39. Описание формата внутреннего представления данных 1С в контексте обмена данными
    40. Работа со схемой запроса Промо

    Зависает метод табдока ПроверитьВывод()

    Добрый день! Столкнулся тут с проблемой — есть файловая бух 3.0.41.59 и платформа 8.3.6.2237. Есть пользователь с ограниченными правами, работают все в терминале. Клиент обратился с проблемой — что у этого пользователя виснет 1с при печати любой п.ф. Вначале решили проблему просто — создали нового пользователя, проставили теже роли что и были и вроде все стало ОК, но через 2 дня ситуация повторилась. От пользователя терминала ничего не меняется. Через отладку дошел до места
    Функция ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти, РезультатПриОшибке = Истина) Экспорт

    Попытка
    Возврат ТабДокумент.ПроверитьВывод(ВыводимыеОбласти);
    Исключение
    Вот на этом месте оно и зависает в переменной ВыводимыеОбласти — массив из 2х строк, 1С начинает есть память пока не съест всю и отваливается со словами про нехватку памяти. подскажите куда копать? если я правильно догадываюсь — она считает что область не помещается на страницу и видимо сует ее на следующий лист, но и там она не помещается? может какие-то настройки в пользовательском режиме могут такие последствия давать? Заранее спасибо!

    Копать в сторону установленых (пробрасываемых, раз у нас терминальная сессия) принтеров.

    На самом деле метод ПроверитьВывод имеет смысл использовать только в том случае если для формируемого табличного документа определен принтер и все его параметры страницы (ориентация, поля, колонтитулы).

    Это не очевидно, отсюда и бытует мнение (1) среди 1сников.

    Источник

    ПроверитьВывод() непонятно как то работает

    Подскажите безграмотному, где собака зарыта, пол дня уже бьюсь(

    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ЭкземпляровНаСтранице = 1;

    Для каждого СтрокаКомиссия Из Док.ЧленыКомиссии Цикл

    Если Не (ТабличныйДокумент.ПроверитьВывод(МассивВыводимыхОбластей)) Тогда
    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    НомерСтраницы = НомерСтраницы + 1;
    ОбластьНомерСтраницы.Параметры.НомерСтраницы = «Страница » + НомерСтраницы;
    ТабличныйДокумент.Вывести(ОбластьНомерСтраницы);
    МассивВыводимыхОбластей.Очистить();
    МассивВыводимыхОбластей.Добавить(ОбластьНомерСтраницы);
    КонецЕсли;

    Если СтрокаКомиссия.НомерСтроки = 1 Тогда
    ОбластьКомиссия.Параметры.СтрокаЧленыКомиссии = «Члены комиссии: «;
    Иначе
    ОбластьКомиссия.Параметры.СтрокаЧленыКомиссии = «»;
    КонецЕсли;

    ОбластьКомиссия.Параметры.ФИОЧленаКомиссии = СтрокаКомиссия.ФИО;
    ОбластьКомиссия.Параметры.ДолжностьЧленаКомиссии = СтрокаКомиссия.Должность;
    ТабличныйДокумент.Вывести(ОбластьКомиссия);
    МассивВыводимыхОбластей.Добавить(ОбластьКомиссия);
    КонецЦикла;

    Есть такой вот код, вот не могу понять, почему у меня ПроверитьВывод срабатывает когда примерно заполнилось пол страниы

    (6) без нее когда массив на страницу наполнится будет каждую строчку с новой страницы выводить

    (5)(7) придется видимо ковыряться другим способом, попробую предложенным, спасибо

    ПроверитьВывод не работает. однозначно. проверено на сферическом вакууме. вот как я его обошел (буквально вчера)

    три табличных документа:
    ТД
    ТДКопия
    ТДСтрока

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

    (12) ну, 200 страниц, это даааа.. придется мухлевать, тогда мой метод примени для первой страницы, а дальше проверяй этой долбанутой функцией

    (13) эта хрень как раз первую страницу и портит.

    (18) отпишусь тут как добил

    а ты мне еще на 200 страниц предлагал))) если уже на 20 тормозит)))

    Источник

    АйТиБложик

    Маленький IT блог с характером 1С.

    Ошибка хитрого метода ПроверитьВывод() табличного документа

    • Получить ссылку
    • Facebook
    • Twitter
    • Pinterest
    • Электронная почта
    • Другие приложения

    Столкнулся с такой ошибкой, при выводе информации на печатную форму, платформа выдает следующее сообщение:
    Ошибка при вызове метода контекста (ПроверитьВывод).

    ПроверитьВывод() — это метод табличного документа, который проверяет, умещаются ли переданные табличные документы на страницу при печати. В примечании у этого метода разработчики платформы 1С сразу написали, что при возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение.

    Проверил установленные принтеры, все исправно и работает. Эмпирическим путем выяснил, что данная ошибка возникает только у конкретной печатной формы и только под одним пользователем.

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

    1. Помещение ПроверитьВывод в попытку

    2) Сформировал печатную форму.

    2. Пустая печатная форма (кол-во товаров = 0)

    3) Для текущей печатной формы открыл параметры страницы и установил правильные параметры.

    3. Параметры страницы

    Ошибка возникала из-за неправильных параметров страницы, которые платформа сохранила ранее при выводе на печать печатной формы, например: платформа сохранила в параметрах страницы принтер, который в дальнейшем удалили и установили новый. Параметры страницы печатной формы хранятся в свойстве табличного документа КлючПараметровПечати. Это свойство содержит ключ значения, в котором сохраняются параметры печати таблицы. Параметры печати, настроенные и сохраненные с данным ключом, впоследствии восстанавливаются при следующем показе таблицы.

    Что бы данная ошибка не возникала из-за неправильных параметров страницы, свойство КлючПараметровПечати следует устанавливать не в начале процедуры вывода на печать, а в конце, так как при установке данного свойства параметры печати тут же восстанавливаются.

    UPD 04/10/2015: Если устанавливать свойство КлючПараметровПечати в конце формирования табличного документа, то метод ПроверитьВывод будет использовать параметры печати установленные по-умолчанию, а не пользовательские. Что бы избежать данной ситуации, необходимо устанавливать свойство КлючПараметровСистемы в начале формирования табличного документа, а метод ПроверитьВывод поместить в конструкцию Попытка-Исключение-КонецПопытки.

    Источник

    Решение проблемы ПроверитьВывод() для огромных документов

    Служба информационно-технического развития _ (SITR-utyos)

    Каких результатов удалось достичь

    Изначально, печатная форма, содержащая

    200 страниц выводилась(речь идет об именно выводе в табличный документ) > 15 минут. В результате оптимизации удалось сократить время до 1-2 минут.

    Последовательность действий:

    1. Объявляем ТабличныйДокумент как ранее, настраиваем его свойства(Масштаб, ориентация страницы, поля);
    2. Объявляем еще один табличный документ, назовем его ИтоговыйТабличныйДокумент, копируем в него все свойства ранее созданного;
    3. Выполняем вывод одной страницы в ТабличныйДокумент, проверяем, умещается ли он или нет с помощью метода ПроверитьВывод()
    4. Когда вывод не умещается на странице ТабличныйДокумент, то:
      1. Выполняем его вывод в ИтоговыйТабличныйДокумент методом Вывести(ТабличныйДокумент)
      2. Очищаем ТабличныйДокумент
      3. Выводим шапку(если требуется) в Табличный документ
    5. Пункты 3-4 повторяются в цикле, как и при обычном формировании печатных форм
    6. В конце формирования выводим подвал в ИтоговыйТабличныйДокумент

    Как это выглядит в программе

    Бонусом идет печатная форма для УПП 1.3, в которой присутствует этот кусок кода

    Скачать файлы

    Специальные предложения

    На 8.3.11 не проверяли? Там что-то оптимизировали на эту тему:

    Что-то подобное в расчетном листке организации ЗУП 2.5 используется.

    (11) да не область на 300 страниц. А сам табличный документ на 300 страниц.

    Автор предлагает не вызывать ПроверитьВывод() для большого документа на 300 страниц, а вызывать эту функцию только для малого табличного документа, который равен последней странице большого.

    Ускорение происходит не за счет того, что уменьшается количество вызовов функции ПроверитьВывод(), а за счет того, что каждый вызов занимает в разы меньше времени.

    Обновление 06.11.17 16:44

    См. также

    Безопасная работа с транзакциями во встроенном языке Промо

    Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку «В данной транзакции уже происходили ошибки». Учимся защищаться от них.

    25.03.2019 45288 tormozit 58

    Пример создания документа с движениями в ERP 2.5.7

    Пример создания документа с движениями в ERP 2.5.7, а также включение документа в основные подсистемы, а именно по управлению доступом, датам запрета изменения, контролю остатков, использованию характеристик и серий и прочее.

    10.08.2021 1907 maraty 10

    Работа с абстрактным массивом

    Абстрактные типы данных и алгоритмы уверенно набирают популярность в языках общего назначения. Встроенный язык 1С является предметно-ориентированным и не спешит развиваться в сторону поддержки абстракций. Однако потребность в них существует, т.к. задачи, решаемые на платформе, не уступают разнообразию из других ЯП. Предлагаю рассмотреть вариант реализации абстрактного массива в 1С.

    07.07.2021 3687 kalyaka 56

    Семеро одного не ждут? Асинхронное исследование асинхронности

    Все уже, наверное, знают о появлении в новых версиях платформы асинхронных функций и конструкций Асинх/Ждать. Многие, возможно, уже их используют. Но что будет, если создать свои асинхронные функции, запустить и не дожидаться окончания их выполнения? Неужели можно запустить несколько процессов параллельно?

    08.06.2021 5369 Alxby 45

    Для чего это нужно. Например, нужно в одной базе получить какой-либо показатель из другой базы. Этот показатель вычисляется в каком-либо сложном отчете, который написан на СКД. Можно, конечно, «скопипастить» текст запроса из другой базы, немного подправить его и выполнять в том же COM подключении. Но с этим теряется гибкость: если отчет изменился, то нужно помнить о том, что где-то есть его «немного модифицированная» копия. В статье будет рассмотрен пример получения данных из базы ЗУП.

    08.05.2018 31899 wowik 3

    Связи параметров выбора номенклатуры и характеристики в 1С 8.3

    Из этой статьи вы узнаете, как, используя системы стандартов и методик разработки 1С, правильно настроить связи параметров выбора номенклатуры и характеристики в новой табличной части.

    22.02.2021 1348 plotnikov1c 2

    Динамическая расшифровка СКД (на примере отчета)

    Предлагаю Вашему неподкупному вниманию вариант более-менее унифицированной реализации динамически формирующейся расшифровки СКД на примере простейшего отчета для конфигурации УТ 11.

    08.12.2020 1536 mr_sav 2

    СКД: все, что вы хотели знать о подмене схемы компоновки данных в отчетах и обработках

    Довольно часто на различных тематических форумах задается вопрос, можно ли использовать в отчете/обработке несколько схем компоновки данных, подменяя одну другой по мере надобности? При этом желательно, чтобы и пользовательские настройки при смене схемы менялись соответственно.

    07.12.2020 5049 user1502278 18

    Описывается реализация на языке запросов 1С метода расположения вершин графа на плоскости, основанного на использовании электромеханической аналогии. При этом вершины графа представляются одноименными электрическими зарядами, дуги — пружинками. Силы взаимодействия вершин в этой системе переводят их из случайного начального в нужное конечное положение. Приведена обработка рисования графов «ГрафОграф», реализующая данный подход, показывающая также динамику процесса. Граф можно задать списком ребер вручную, выбрать из нескольких предопределенных примеров или сформировать по данным информационной базы.

    09.08.2013 73463 ildarovich 117

    Cбор и анализ ошибок при помощи Sentry, или как упростить жизнь себе и пользователям

    Цель данной статьи — сделать процесс сбора и анализа ошибок, происходящих в базе, максимально простым, быстрым и удобным, собирать статистику по ошибкам, местам их возникновения и частоте их появления, а также в деталях разобрать все тонкости по интеграции 1С с Sentry.

    09.10.2020 7293 hexhoc 12

    Программная корректировка при выводе отчета СКД

    Большинство отчетов на СКД, требующих программной корректировки, реализуются с помощью программной настройки СКД или обработки табличного документа уже после вывода отчета. Но во многих случаях более оптимально будет выполнять программную корректировку в процессе вывода отчета. Для этого существуют программные объекты, о которых я расскажу в данной статье.

    08.10.2020 10699 dabu-dabu 16

    Загрузка, скачивание, удаление файлов с помощью НачатьПомещениеФайлаНаСервер() и НачатьПолучениеФайлаССервера()

    В платформе 8.3.15 появились новые методы НачатьПомещениеФайлаНаСервер() и НачатьПолучениеФайлаССервера(). В данной статье рассмотрено готовое решение проверенное и прекрасно работающее на тонком и веб-клиенте.

    25.07.2020 11529 Flashill 15

    Простой способ индексирования интервалов Промо

    Предлагается простой способ индексирования интервалов для решения задач выборки записей, включающих заданный момент времени, пересекающихся с заданным интервалом или множеством интервалов. Способ основан на добавлении к исходной таблице особого числового индексированного поля, рассчитываемого по специальной формуле. Приведен код функций, необходимых для расчетов поля поиска и параметров поисковых запросов. Приведены также результаты тестирования метода, доказывающие его высокую эффективность.

    28.09.2016 41987 ildarovich 22

    Универсальная печатная форма Приказа/Договора с возможностью настройки макета в пользовательском режиме

    В данной статье я опишу реализацию универсальной (в кавычках) печати Приказа (Договора или чего пожелаете) с возможностью настройки выводимого текста с параметрами из пользовательского режима. Обработка для скачивания написана для доработанной конфигурации клиента ЗУП версии 3.1.13.120. Перед внедрением в свою конфигурацию ее необходимо будет дорабатывать.

    24.06.2020 2418 BuriyLesha 3

    Методика обновления формы объекта данных при изменении объекта

    В формах объектов данных часто встречаются элементы, косвенно связанные с объектом. Логику обновления этих элементов при изменении объекта обычно вызывают из обработчиков ПриСозданнииНаСервере и ПриОткрытии, забывая про наличие других способов изменения объекта. В статье предложена методика для обычных и управляемых форм, учитывающая все способы.

    09.03.2020 20071 tormozit 16

    Отправка уведомлений с помощью командной строки, Оповещения с сервера на клиент с помощью командной строки

    Отправка уведомлений с помощью команды командной строки msg. Оповестить пользователей из серверного модуля или регламентного задания, с помощью командной строки msg.

    05.03.2020 8063 user5300 3

    Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов Промо

    Если вам интересно проверить контрагенте в ФНС, вам поможет данная публикация. Весь алгоритм работы строится на основе данных, полученных с сервиса http://npchk.nalog.ru совершенно бесплатно.

    01.02.2018 38268 rpgshnik 54

    Вывод сообщений в HTML поле средствами 1С

    Пример использования вывода большого количества сообщений в поле HTML. С возможностью открывать ссылочные объекты и создавать новые объекты передавая параметры прямо из HTML поля. Протестировано на релизах 8.3.12 и 8.3.15+

    31.01.2020 10578 burni4 16

    Краткое руководство по внесению изменений в конфигурацию

    Кратко описаны основополагающие моменты при старте групповой разработки конфигурации несколькими программистами. Полезно для проектной документации как требование к разработчикам или сопровождающей компании.

    13.01.2020 22641 sapervodichka 41

    Универсальные функции: разложение произвольной строки адреса в структуру

    Процедуры и функции раскладывают произвольную строку адрес в структуру по ключевым словам.

    30.12.2019 5893 vik070777 10

    БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному Промо

    Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

    10.05.2018 54002 dsdred 46

    «Живые» картинки со Snap.SVG

    В статье рассмотрен пример использования http-сервисов для визуализации данных

    24.10.2019 15110 blackhole321 7

    RLS — дубли условий в запросах к СУБД

    «Подводные камни», возникающие при бездумном копировании ролей с ограничениями RLS, как это отражается на производительности, разбор примера и инструмент для анализа.

    07.10.2019 10030 geron4 4

    Полное копирование одной формы в другую

    Однажды я столкнулся с необходимостью открыть форму ЛЮБОГО документа с определенными изменениями, не зависящими от структуры объекта (например, заблокировать все кнопки). В интернете решения я не нашел. Обычно на форумах на запросы подобного рода отвечают чем-то вроде «покажи первоначальную задачу, а не спрашивай как реализовать то, что ты придумал». Тем не менее, мне стало интересно, как это можно сделать.

    03.10.2019 7942 nekit_rdx 25

    В статье приведены примеры работы с Платформой 8.X через COM (точнее, через объект COMConnector). Примеры кода были использованы при реализации прикладных задач в процессе трудовой деятельности.

    05.12.2012 59939 wowik 32

    Многопоточная обработка данных на примере перепроведения документов

    Дальнейшее развитие темы фоновой обработки данных — проведение документов в потоках. Настройка параметров и запуск основного процесса (менеджера потоков). Разбивка документов для проведения на не связанные друг с другом наборы и запуск дополнительных фоновых заданий для отдельных потоков. Отслеживание выполнения каждого потока в родительском сеансе.

    17.09.2019 12751 ids79 46

    Отображение истории выполнения по всем задачам комплексного процесса в документообороте

    Коллеги, предлагаю вашему вниманию доработку для вывода полной истории в задачах комплексного процесса.

    15.09.2019 8758 pavelpribytkin96 8

    Описание формата внутреннего представления данных 1С в контексте обмена данными

    Фирма 1С не рекомендует использовать внутреннее представление данных для любых целей, которые отличны от обмена с 1С:Предприятием 7.7. Но сама возможность заглянуть на «внутреннюю кухню» платформы с помощью функций ЗначениеВСтрокуВнутр(), ЗначениеВФайл(), ЗначениеИзСтрокиВнутр() и ЗначениеИзФайла(), дала возможность сообществу программистов 1С разработать новые приемы разработки и анализа. Так, именно на использовании внутреннего представления был построен алгоритм «быстрого массива», который позволяет практически мгновенно создать массив в памяти на основании строки с разделителями. С помощью разбора внутреннего представления можно «на лету» программным кодом выполнить анализ обычной формы и даже сделать редактор графической схемы. Во внутреннем формате сохраняют свои данные между сеансами различные популярные внешние обработки. А еще это возможность сделать быстрый обмен с внешними системами.

    06.09.2019 21737 Dementor 31

    Стандартом взаимодействия с реляционной базой данных стал язык SQL. Приемником SQL в 1С является язык запросов. Язык запросов, также как и SQL, является структурированным. Составляющие структуры запроса отвечают на разные вопросы о том, какие данные требуется получить и какие манипуляции с множествами данных необходимо произвести при получении. В простых случаях текст запроса можно написать вручную, однако в сложных случаях, а также при программном формировании, — лучше воспользоваться объектной моделью запроса и использовать объект «Схема запроса». В статье дается описание объектной модели и особенностей работы с ней, а также приводится решение, упрощающее взаимодействие с объектом «Схема запроса».

    Источник

    Adblock
    detector

    Наименование Файл Версия Размер

    Добрый день, при выводе на печать СЗВ 6-4 выдает ошибку.

    {Обработка.СведенияВПФ_СЗВ64.Форма.Форма.Форма(724)}: Ошибка при вызове метода контекста (ПроверитьВывод)
    Если п_ПечатныйЛист.ПроверитьВывод(п_МассивПроверки) Тогда

    ,аналогичная ошибка при выводе на печать Поименного списка сотрудников

    {Обработка.СведенияВПФ_СЗВ64.Форма.Форма.Форма(5768)}: Ошибка при вызове метода контекста (ПроверитьВывод)
    Если Не л_ТабДок.ПроверитьВывод(л_Массив) Тогда

    Принтер в системе установлен, другие формы корректно выводятся на печать.

    В локальной конфигурации, КАМИН:Зарплата для бизнеса. Версия 4.0 (4.0.23.3)

    Тема закрыта.

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста проверить объектxdto проверить
  • Ошибка при вызове метода контекста содержит
  • Ошибка при вызове метода контекста проверить заполнение
  • Ошибка при вызове метода контекста скопировать неверное имя колонки
  • Ошибка при вызове метода контекста присоединить