INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Белозеров Дмитрий | Системный архитектор | LMSoft

«Кодогенерация и метагенерация в 1С»

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

Подключение нескольких сканеров штрих-кода по rdp (win server 2003, 2008 х64 ) 1Сv8: Управление торговлей 10.3

Оборудование - Сканер штрих-кода

59
Была задача: удаленные филиалы подключить по rdp к одному серваку под управление win 2008 и сканеры штрихкодов тоже, но  они никак не хотели работать. То есть если работал один, остальные не работали.Ну и хотелось поделится опытом решения проблемы, вдруг кому то тоже поможет))))
Напишу сразу это решение проблемы для конкретного релиза УТ 10.3.3.3, на остальных  не проверял может уже исправили в последующих.Просто конфигурация сильно переписанная и не обновляемая у нас))))

Для начала все сканеры должны висеть на разных com портах. Поменять номер порта можно в диспетчере устройств, в разделе Порты (COM и LPT) необходимо выбрать нужный порт и вызвать его свойства, там перейти во вкладку "Параметры порта" и по кнопке "Дополнительно" вызвать дополнительные параметры, где можно сменить номер порта. И при подключении к удаленному рабочему столу необходимо убедится что галочка перекидывать порты установлена. На сервере проверить перекинулся ли порт можно командой "change port".

На сервере не забываем установить компоненту "1С: Сканер штрихкода", ну и добавление сканера в самой программме 1С: Управлении торговлей описывать не буду, в этом сложности никакой нет. Но напишу тока, что сканеров будет несколько привязанных к данному компьютеру, т.е. в конфигурации УТ оборудование привязано к конкретному ПК. Если у вас только один сканер то он без проблем должен работать, если порт прокинут конечно))). Но вот если их два и больше могут возникать проблемы с которыми я столкнулся.Проблема была в том что работал только один сканер остальные не работали.

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

Результат = Обработка.Подключить(Объект);
Если ЗначениеЗаполнено(Результат) Тогда
Возврат Результат;
КонецЕсли;

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

Вот как я подправил данный фрагмент кода:

//Если ЗначениеЗаполнено(Результат) Тогда
// Возврат Результат;
//КонецЕсли;
Если Результат = Перечисления.ТООшибкиОбщие.ОшибкаПриПодключении Тогда
Продолжить;
КонецЕсли;

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

59

См. также

Комментарии
Сортировка: Древо
1. padlik07 27.02.13 10:47 Сейчас в теме
не плохо. =) в чем плюс что не надо изобретать велосипед =)
2. dagroma 113 27.02.13 13:40 Сейчас в теме
А мы это делаем добавлением ресурса Пользователь в регистр сведений ТорговоеОборудование.
7. webester 28 27.02.13 16:08 Сейчас в теме
(2)Какой в этом смысл когда можно (5)?
8. dagroma 113 27.02.13 16:59 Сейчас в теме
(7) Перенастраивать проще.
9. webester 28 27.02.13 17:01 Сейчас в теме
(8)Не понял, что проще перенастраивать добавив ресурс в регистр?
10. dagroma 113 27.02.13 17:52 Сейчас в теме
(9) Пользователи 1С часто меняются и при вводе нового пользователя пришлось бы настраивать новое рабочее место. А так можно изменить пользователя и все. Конечно, и в вашем случае его можно руками вписать, но клиент захотел таким образом решить.
13. 1cmax 151 03.03.13 20:35 Сейчас в теме
(9) webester, Аналогично делал
12. serega_sun 01.03.13 03:57 Сейчас в теме
(2) dagroma,
Я тоже решал таким методом. Мне кажется так правильнее. Меньше похоже на костыли.
3. Al-X 27.02.13 14:08 Сейчас в теме
Я так подключал не сканеры, а терминалы сбора данных к УПП. Тока я схитрил, указал у всех, что работа идет тока с ком1. 7 терминалов на 7 компах работают отлично, и конфликтов нет. Надо установить терминал на другой комп, назначаю ком 1, и уже все сразу само работает.
6. webester 28 27.02.13 16:06 Сейчас в теме
(3)Они по очереди будут работать, вместе нет, сканеры так работать точно не будут.
4. pss1985 3 27.02.13 14:34 Сейчас в теме
тоже сталкивался с подобной проблемой в УПП. завели в справочнике торгового оборудования несколько сканеров, указали один и тот же ком порт. В подключении и настройке ТО все эти сканеры закинули. И у всех работает. Единственное что не нравится, это то, что когда вызывается процедура подключения ТО, если одно оборудование подключилось, то 1с в цикле проходит все оставшиеся сканеры и пытается их подключить, при этом выдается сообщение:
"Сканер штрихкода (общий): Ошибка при подключении устройства.
Необходимо убедиться, что устройство правильно настроено и соответствующий порт не занят другим приложением.
Сканер штрихкода (общий): Ошибка при подключении устройства.
Необходимо убедиться, что устройство правильно настроено и соответствующий порт не занят другим приложением.
Сканер штрихкода (общий): Ошибка при подключении устройства..............."
5. webester 28 27.02.13 16:04 Сейчас в теме
По моему в корне неверное решение плевать на ошибки подключения и каждый раз перебирать ВСЕ подключенное оборудование включая фискальный регистратор, сканеры и еще много чего. Почему вы просто не используете другой идентификатор вместо имени компьютера? Вот процедура из модуля обработки ТОСервер которая возвращает строку, по которой конфигурация из регистра восстанавливает подключенное торговое оборудование:
Функция ПолучитьИмяКомпьютераТО() Экспорт

Если мИмяКомпьютера = Неопределено Тогда
// мИмяКомпьютера = ВРег(ИмяКомпьютера());
мИмяКомпьютера = ВРег(ИмяПользователя());

КонецЕсли;

Возврат мИмяКомпьютера;

КонецФункции // ПолучитьИмяКомпьютераТО()
Как видите здесь стоит имя пользователя, так как у нас каждый пользователь это вполне определенный компьютер разумеется со своим сканером. Но сюда можно засунуть вообще все что угодно, начиная от имени компьютера клиента, который подключился к терминальному серверу, заканчивая содержимым буфера обмена или там диска C клиента или не знаю еще чего.
Prooa; cheburashka; borrman; +3 Ответить
11. webester 28 28.02.13 02:29 Сейчас в теме
(11)Я и говорю, что не понимаю, какая разница что изменить, новое, добавленное вами поле регистра, или строку с именем пользователя, у существующего измерения.
14. Sergoninfostarru 2 04.03.13 00:21 Сейчас в теме
А не каждый ли раз при подключении к терминальному серверу надо будет настраивать порты ?
Не слишком это будет сложно для обычных пользователей? Жестко порт к терминальному серверу не прикрутишь !!!
После отключения от сервера настройка будет обнуляться. Подобная проблема иногда возникает с принтерами в терминальном режиме, когда принтер видимый только в подключенном сеансе.
16. webester 28 11.04.13 07:30 Сейчас в теме
(14)(15)Работаем несколько лет уже так, 4 магазина, от 5 до 15 компов в каждом, проблем не замечено.
15. Spacer 278 07.03.13 05:24 Сейчас в теме
"Для начала все сканеры должны висеть на разных com портах"
Далеко не самый лучший вариант. С com-портами постоянный геморр будет обеспечен.
Гораздо проще подключать USB-сканеры по типу "в разрыв клавиатуры" и использовать АТОЛ-овские дрова.
Просто, надежно и никаких проблем.
17. tp_home@mail.ru 05.05.16 16:12 Сейчас в теме
Автору спасибо. Нагуглил только эту ветку с решениями. Спасибо за то, что хоть какой то якорь запузырили в сеть!
Остальным спасибо за варианты в каментах.
Оставьте свое сообщение