7.7 Закрывается 1С при сканировании ШК после посылки этикетки на принтер

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем leha, 7 июн 2011.

  1. TopicStarter Overlay
    leha
    Offline

    leha

    Регистрация:
    9 июн 2009
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Имеется:
    1С 7.7. Конфигурация полностью переписанная на основе Комплексной.
    сканер штрих-кода Metrologic MS9520 COM-порт
    принтер термоэтикеток BZB-2 LPT-порт

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

    Если не посылать этикетки сразу на печать, а показывать таблицы для дальнейшей печати, то всё работает нормально. Т.е. сбой происходит при сканировании ЛЮБОГО штрих-кода после отработки
    Код:
    ТаблЭтикетки.Напечатать(0);
    
    Если передать ей параметр 1, то также при следующем сканировании произойдёт сбой.

    При отладке: при сканировании после печати этикетки база вылетает, даже не выполняя процедуру ОбработкаВнешнегоСобытия

    Если кто сталкивался с подобным, расскажите пожалуйста, откуда ноги растут.
  2. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Попробуйте переустановить Barcode.Ocx. Брать только штатную - от 1с
  3. TopicStarter Overlay
    leha
    Offline

    leha

    Регистрация:
    9 июн 2009
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Нет, переустановка не помогла. Да и как вывод на термопринтер может быть связан с barcode.ocx?
    На печатаемых этикетках у меня нет штрих-кода. А при сканировании ШК на стикере товара наверное используется scanopos.dll. Или я не прав?
  4. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Прав.. Но о том что на этикетках нет ШК - не упоминали. Тогда пробовать переставить дрова принтера. На 99% дело в сторонней библиотетке, а не в 1с (1% оставил на безграмотный код т.к. я его не видел)
  5. TopicStarter Overlay
    leha
    Offline

    leha

    Регистрация:
    9 июн 2009
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Дрова принтера, думаю тоже не при чём. Дело в том, что если не посылать этикетки на него сразу через
    Код:
    ТаблЭтикетки.Напечатать(0);
    
    , а вывести таблицу с этикетной на экран и потом отравить её на принтер, то всё отлично печатается в любом количестве.
    А код незамысловат))))
    Код:
    Процедура ПечатьЭтикетки()
    
    ТаблЭтикетки = СоздатьОбъект("Таблица");
    ТаблЭтикетки.ИсходнаяТаблица("Этикетка");
    ТаблЭтикетки.ВывестиСекцию("гор");
    ТаблЭтикетки.Напечатать(0);
    
    КонецПроцедуры // ПечатьЭтикетки
    
    За идею с библиотеками спасибо - попробую scanopos другой поставить...
  6. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Попробуйте с выбором принтера... Т.е.
    Код:
    Напечатать(1);
    
    
    
    что-то я такое припоминаю. Сталкивался. А предпросмотр КСТАТИ открывается нормально?
  7. TopicStarter Overlay
    leha
    Offline

    leha

    Регистрация:
    9 июн 2009
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    что-то нащупалось..
    Код:
        ТаблЭтикетки = СоздатьОбъект("Таблица");
    ТаблЭтикетки.ИсходнаяТаблица("Этикетка");
    ТаблЭтикетки.ВывестиСекцию("гор");
    ТаблЭтикетки.ПараметрыСтраницы(1,,,0,0,0,0,0,0,1,,);
    ТаблЭтикетки.ТолькоПросмотр(1);
    ТаблЭтикетки.Показать(,,);
    ТаблЭтикетки.Напечатать(1);
    
    
    так печатает ( и печатается при Напечатать(0) ), но в предпросмотре и параматрах печати заметил изменения, настройки выставились какие-то другие по умолчанию... Буду разбираться дальше
  8. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    в ветке регистра molex для этой базы есть косяки похоже... У вас что - терминал? Проблема у всех такая или только у одного?
  9. TopicStarter Overlay
    leha
    Offline

    leha

    Регистрация:
    9 июн 2009
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    В общем всё печатает нормально, если перед Напечатать(0) использовать Показать().
    Насчёт других машин сказать не могу, т.к. это новая система стикерения коробок для доставки, которую я собственно и разрабатываю.
    А что это за ветка? за что отвечает? как с этим бороться?
  10. TopicStarter Overlay
    leha
    Offline

    leha

    Регистрация:
    9 июн 2009
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    В итоге пока что решил проблему так
    Код:
    	ТаблЭтикетки = СоздатьОбъект("Таблица");
    ТаблЭтикетки.ИсходнаяТаблица("Этикетка");
    ТаблЭтикетки.ВывестиСекцию("гор");
    ТаблЭтикетки.ТолькоПросмотр(1);
    ТаблЭтикетки.Показать(,,);
    ТаблЭтикетки.Напечатать(0);
    ТаблЭтикетки.Показать(,,-1);
    
    Если кто расскажет, в чём истинная причина сего бага, буду очень признателен.
    P.S. так что есть molex ?
  11. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Эта ветка отвечает как раз за параметры печати/принтера по умолчанию.

    Ради чистоты эксперимента попробуйте грохнуть базу из списка выбора при входе в 1с (необходимо закрыть). При следующем запуске заново добавляем базу в список. ВСЯ ветка удалится/создастя заново и как следствие очистится. ПРИ ПЕРВОМ запуске сразу не отправляйте на печать! Пусть 1с запомнит как именно вам нужно (если не выставлены параметры страницы програмно)

Поделиться этой страницей