Новые релизы «1С: Управление торговлей»: обновление без развития. Назначение и печать штрихкодов номенклатуры

💖 Нравится? Поделись с друзьями ссылкой


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

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

При этом пользователи видят, например, такую картинку:

В то время как при работе с локальных компьютеров никаких проблем с подключением внешних компонент нет.

С чем это связано? Это связано с тем, что, когда пользователи работают через сервер терминалов, они имеют меньше прав, чем при работе на локальном компьютере.

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

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

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

Например, такие:

1. Запустить первый раз 1С под административными правами.

Этот вариант далеко не всегда срабатывает. Ниже объясню, почему.

2. Дать обычным пользователям терминала права на запись в ветку системного реестра HKEY_CLASSES_ROOT .

Недостаточно "продвинутым" пользователям лучше этого не делать, иначе могут быть проблемы.

3. С помощью различных "примочек" регистрировать ВК от имени пользователя с полными правами.

Тоже не есть хорошо.

Так как же все таки лучше выйти из этой ситуации?

Я предлагаю свой вариант решения этой проблемы. По моему мнению - простой и красивый.

Исследуя эту проблему, я задался вопросом - а зачем 1С вообще пытается зарегистрировать ВК по новому пути? Ведь она уже зарегистрирована в системе.

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

ПодключитьВнешнююКомпоненту("Справочник.ПодключаемоеОборудование.Макет.ДрайверАТОЛСканерШтрихкода", "АТОЛСканер");

Как видим, ВК драйвера подключается из макета "ДрайверАТОЛСканерШтрихкода" справочника "ПодключаемоеОборудование".

Что же при этом происходит?

1С сохраняет компоненту во временной папке пользователя, например "C:\Documents and Settings\User\Local Settings\Temp\1032\v8_4_12.tmp"

и пытается зарегистрировать ее в ветке реестра HKEY_CLASSES_ROOT именно по этому пути.

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

Теперь о том, как выйти из этой ситуации.

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

Итак, по шагам:

1. Регистрируем внешнюю компоненту утилитой regsvr32.exe на сервере терминалов в папке C:\WINDOWS\SYSTEM32 для 32-разрядной ОС или в папке C:\WINDOWS\SYSWOW64 для 64-разрядной ОС.

2. Используем один из двух дополнительных вариантов синтаксиса метода ПодключитьВнешнююКомпоненту():

Вариант 1:

ПодключитьВнешнююКомпоненту("C:\WINDOWS\SysWOW64\Scaner1C.dll", "АТОЛСканер", ТипВнешнейКомпоненты.COM);

ОбъектДрайвера = Новый ("AddIn.АТОЛСканер.Scaner45");

Вариант 2:

ProgID = "AddIn.Scaner45";

ПодключитьВнешнююКомпоненту(ProgID);

ОбъектДрайвера = Новый (ProgID);

На мой взгляд, вариант № 2 предпочтительнее.

При этом 1С не пытается перерегистрировать ВК по новому пути в реестре и таким образом, все проблемы решаются.

Ну вот собственно и все. Успехов в работе!

[необходимо зарегистрироваться для просмотра ссылки]

Вопрос: Внешняя компонента Native Api на C++ под Linux (Ubuntu x64) на 1С 8.3


Пишу ВК, не могу подключить к 1с на ubuntu. Даже экзапл от 1с не подключается. Поэтому вопрос по нему:

1) Пытаюсь подключи ВК из примера VNCOMPS, приведённым в статье

(ссылку можно найти в самом конце: «Копирование»).
Внутри в проекте NativeApi есть makefile. С его помощью я собираю.so библиотеку на Ununtu.
Но при "ПодключитьВнешнююКомпоненту" 1с вылетает.
Аналогично, если собираю при помощи "build.sh" (в корне проекта).

В самом makefile меняю флаг с m32 на m64, т.к. 1с и сама система x64. (с параметром m32 не подцепляется всё равно)
Вот пример вызова ВК из 1С 8.3:
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту ("/home/alexeyubuntux64-20 gb/Документы/VNCOMP83/example/NativeAPI/AddInNative.so", "AddInNative", ТипВнешнейКомпоненты.Native); Есть статейка как раз на эту тему.
Но, насколько я вижу, все эти моменты уж учтены исправили в VNCOMPS примере.

Но по сути дело в параметрах компиляции. Мб 32битная внешняя компонента подцепляется к 32-x битной 1с нормально, но я развернул на Ubuntu x64 1c enterprise83 8.3.5-1486 amd64. И хочу к ней подцепить ВК.

Есть у кого мысли, как решить этот вопрос?)
VNCOMPS-пример должен работать, но походу надо поправить параметры сборки, или сама платформа, на которой я тестирую - некорректна.

Ответ: Интересно, а на яве можно внешнюю компоненту написать?

Вопрос: Не подключается внешняя компонента (Native)


Скомпилировал пример c ИТС, для 64 и 32 битной системы.

Подключаю так:
РезультатПодключения = ПодключитьВнешнююКомпоненту(ПутьКДЛЛ, "Comp", ТипВнешнейКомпоненты.Native); На одном ПК подключение проходит, на другом нет. Есть разница в ос. Где подключение проходит, там стоит Win7, где нет Win10. При этом на ПК, где не работает моя компонента, работают типовые компоненты.

Тестировал на разных платформах (8.3.4.482, 8.3.6.2100, 8.3.11.2700, 8.3.12.1412).

Как понять почему не подключается?

Ответ: vc_redist не забыл?

Вопрос: 1С8 и внешняя компонента с типом Native


Добрый день.
Имеется конфигурация БП 3.0.50.12 и желание внедрить в нее взвешивание от компании Весы-Софт с помощью UniServerAuto.
Разработчики скомпилировали компоненту на Native для Windows 32 и 64, и с файлом maifest сложили в архив. Так же есть пример для 1С, как можно считать вес. В нём с помощью макета с двоичными данными указан, я так понимаю, архив этот. В примере всё неплохо: устанавливается компонента, подключается, потом устанавливается связь и считывается вес.
Но как только начинаешь себе в 1С переносить - вес не считывается. Вроде всё просто написано, но где грабли не пойму.
У кого будет немного времени - помогите, гляньте одним глазком, может решение на поверхности, а я хожу где-т не там и делаю не то. Раньше мне не приходилось с технологией Native работать...

А во вложении мой текст обработки

Ответ:

Ну что, есть новости у меня...
Начал просто по шажкам смотреть в какой момент начнет сбоить. Для этого создал пустую базу и обработку с командой. По аналогии с примером поставщика перенес макет в новую конфу - работает со второго раза. Т.е. с первого раза нет, а со второго да. Это натолкнуло на мысль, что всё-таки надо будет в своей обработке развести подключение компоненты и объекта по разным процедурам.
Далее перенес это в свою базу с подключением макета - работает. Фух, уже хорошо.... Но хотелось бы без внесения изменений в конфигурацию, значит идём дальше

Пробую макет добавить в обработку. Её размер сразу увеличивается с 10кб до 3мб и замечается существенное замедление работы - не подходит. Начинаю копать в сторону подключения компоненты через dll. Т.е. по сути к тому же с чего начал. Но тут есть одно "НО": поиском по имени dll по папке пользователя заметил, что эта dll лежит там, где (я так понял) складываются зарегистрированные в 1С dll-ки:
C:\Users\USER\AppData\Roaming\1C\1cv8\ExtCompT
соответственно нет нужды использовать полный путь к dll, можно просто прописать ее имя:
ПодключитьВнешнююКомпоненту("Add1CUniServerAuto32.dll", "UniServerAuto", ТипВнешнейКомпоненты.Native);

Пробую... ругается на регистрацию, но результат взвешивания возвращает. Получается, что уже dll зарегистрирована и значит ее нужно просто подключать. Убираю и всё работает.
Подвожу итог:
1. В обработку взвешивания в процедуру ПриОткрытии внёсподключение внешней компоненты и подключение к объекту.
2. Путь к dll Не писал, указал просто ее имя.

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

Ваши мысли на этот счет хотелось бы услышать...

Вопрос: Внешняя компонента.dll


Всем Доброго дня.
Такой вопрос.
Компонента dll , которая прекрасно работает в 1С 7.7
в 1с 8.1 не хочет вообще загрузиться...
Пробовал и вставить ее в C:\Program Files\1cv81\bin\cache1c.dll
Пробовал регистрировать средствами regsvr32 "C:\Program Files\1cv81\bin\cache1c.dll"
Регистрируется без проблем.
Когда хочу к ней обратится, получаю сообщение об ошибке:

Ошибка загрузки внешней компоненты! cache1c.dll
Процедура КнопкаВыполнитьНажатие(Кнопка) Попытка ЗагрузитьВнешнююКомпоненту("C:\Program Files\1cv81\bin\cache1c.dll" ); Исключение Сообщить("Ошибка загрузки внешней компоненты!" + " cache1c.dll" ); КонецПопытки; Попытка // Получить объект компоненты. // m = Новый ("cache1c.GTMcmd" ); m = Новый COMОбъект("cache1c.GTMcmd" ); Исключение Сообщить(); КонецПопытки; КонецПроцедуры

Ответ: Банально до невозможности...
Нужно выдержать паузы между вызовами (миллисекунды)...
Процедура КнопкаВыполнитьНажатие(Кнопка) Попытка // Получить объект компоненты. m = Новый COMОбъект("cache1c.GTMcmd" ); Исключение Сообщить("Не удалось создать объект внешней компоненты" ); КонецПопытки; m.RemoteHost = "192.168.1.101" ; m.RemotePort = 6330; m.Подключить(); m.Пауза(100); ...... итд
Для 1с 7.7 - это не нужно, получается, что шустрее обращение.

Вопрос: Работа внешней компоненты с сервером 1С...


Добрый день,

Имеется внешняя компонента, написанная на С++, задача которой получение информации из внешней базы данных и возврат результата запроса в виде Таблицы значений в 1С.
Для формирования таблицы значений на текуший момент используется интерфейс IDispatch* pBackConnection, получаемый в качестве параметра в функции Init(). Далее я просто, используя функции 1С формирую таблицу значений, заполняю ее и возвращаю ее во второй параметр в CallAsFunc(...).
Проблемы начались с переходом на тонких клиентов 1С. На стороне сервера внешняя компонента толком не запускается. Можно запустить на стороне клиента, но это все выглядит как костыли и выпадает из общей логики "клиент-сервер" в 1С. Например клиент не понимает, что такое таблица значений, проблемы с "глобальными" переменными, сеансами и т.п.
NativeAPI еще более урезан в этом плане.
Танцы с бубном привели к тому, что я смог запустить внешнюю компоненту под сервером 1С, НО работа происходит до того момента, пока не производится попытка вызвать Invoke у pBackConnection. 64-битная версия сервера 8.2 что-то пытается делать, пока не отваливается по таймауту, 32-битная (ВК естественно тоже 32 битная) просто сразу отваливается.
Предполагаю, что сервер 1С не обслуживает этот режим работы.
Соответственно возникают вопросы, это временно или логика 1С сводится к отмене этой схемы работы? Если создать внутренние структуры 1С (таблицу значений) таким способом нельзя, есть ли в принципе описание, что из себя представляет таблица значений на системном уровне, чтобы попытаться создать ее на С++ , заполнить, а затем просто подсунуть 1С в качестве возвратного параметра? Хотелось бы хотя бы получить направление, в какую сторону копать.

Спасибо.

Ответ:

Вы пишите одно, и имеете в виду другое.
В среде 1С, объявление переменных, которые будут видны в разных сеансах не невозможна сейчас, и не было такой возможности ранее. Другой сеанс, это физически другой процесс.
Сеанс, это сеанс подключения к базе данных, т.е. сеанс работы пользователя. Или вы что-то своё вкладываете а это понятие?

В рамках одного сеанса можно было, и можно сейчас, объявить переменные в модуле сеанса, которые будут жить и будут видны в рамках сеанса из разных мест... вообще-то, их 4-ре штуки.
- Модуль сеанса;
- Модуль обычного приложения;
- Модуль управляемого приложения;
- Модуль внешнего соединения.

Ну и естественно, нужно помнить про контекст. Серверный контекст напрямую не доступен на стороне клиента и наоборот.

Вообще то, архитектурой 1С предусмотрено, что обмен данными будет идти:
- по средствам параметров/возвратов процедур/функций;
- по средствам так называемых параметров сеансов (не могут быть объектами, ну собственно видно в палитре).

Таблица на форме... а она связана с какой-либо таблицей объекта (обработки, например) ? или нет. Если да, то она доступна и на сервере (&НаСервере) там и редактируйте....

И таки да, ТаблицаЗначений не доступна в УФ на стороне клиента. Ну уж так решила 1С.

Да ладно! Вот с Excel работает, с FSO работает и кучей всего остального, а тут тут не работает. Отлавливайте ошибку и анализируйте....

Попытка
...
ваши действия
...
Исключение
стр = ОписаниеОшибки();
КонецПопытки;

При современных аппаратных возможностях, это вообще не аргумент.

Сугубо Ваше лично мнение. Ничего общего с реальностью не имеет. Ни в каком виде. Повторю ещё раз, 1С прекрасно работает с COM. Как с in-proc, так и с out-proc.

Приведите, код, которым вы загружаете и обращаетесь в ВК.

Кстати, ВК... в Вашем случае, это COM или Native API ?
Если COM, то вы регистрируете её как... через regsvr32... как тогда "разруливаете" вопрос разрядности?

Вопрос: Установка внешней компоненты


Подскажите плз как установить внешнюю компоненту. При исполнении следующего кода выдается ошибка. В макете находить NameDecl.dll

Попытка УстановитьВнешнююКомпоненту("ОбщийМакет.Макет"); Исключение КонецПопытки ;
Ошибка: Установка внешней компоненты не выполнена!

Ответ: ()
ПодключитьВнешнююКомпоненту("ОбщийМакет.Макет", "NameDecl", ТипВнешнейКомпоненты.Native) выдает ЛОЖЬ ,
Новый("AddIn.NameDecl.CNameDecl", Неопределено) = {()}: Тип не определен (AddIn.NameDecl.NameDecl)

Вопрос: Не подключается native dll на 1с 8.1 (fptrwin32_fz54_9_11_0_5549.dll)


Здравствуйте.
1С обновил dll для онлайн-касс атол для ффд 1.05 (входит в обработку обслуживания fptrwin32_fz54_9_11_0_5549.dll).
У меня старая 1С 8.1. Она в отличии от 8.2 не поддерживает работу со внешним оборудованием аналогично 8.2, поэтому сначала нужно зарегистрировать dll в windows, а затем только в 1С подключать?

ПрогИД = "AddIn.ИнтеграционнаяКомпонента.ATOL_KKT_1C83_V9"; ЗагрузитьВнешнююКомпоненту("C:\fptrwin32_fz54_9_11_0_5549.dll"); ПодключитьВнешнююКомпоненту(ПрогИД); Драйвер = Новый (ПрогИД);

Однако старая обработка была написана на "технологии" com, а новая native. Соответственно при регистрации regsvr32 выдает ошибку:
Модуль загружен, но точка входа DllRegisterServer не найден. И предлагает проверить, что этот файл является правильным файлом dll или OCX.
Кто с подобной ситуацией сталкивался, как выкручивались? Понимаю что аналогичная проблема будет и у 7.7.
Код 8.2:

Макет = ПолучитьМакет("ИнтеграционнаяКомпонента"); Адрес = ПоместитьВоВременноеХранилище(Макет); ПодключитьВнешнююКомпоненту(Адрес, "ИнтеграционнаяКомпонента", ТипВнешнейКомпоненты.Native); Драйвер = Новый("AddIn.ИнтеграционнаяКомпонента.ATOL_KKT_1C83_V9");

1C 8.2:
ПодключитьВнешнююКомпоненту(<Местоположение>, <Имя>, <Тип>)
1С 8.1:
ПодключитьВнешнююКомпоненту(<Идентификатор объекта>)
Параметры:
<Идентификатор объекта> (обязательный)
Тип: Строка. ProgID (Programmatic Identifier) объекта внешней компоненты. Должно соответствовать информации, находящейся в регистрационной базе данных системы (Registry).
Описание:
Подключает объекты внешней компоненты к 1С:Предприятию.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Примечание:
Внешние компоненты совместимы с компонентами 1С:Предприятия 7.7.
Пример:
Попытка
ПодключитьВнешнююКомпоненту("AddinObject.Scanner");
Сообщить("Компонента для сканера штрих-кодов загружена");
Исключение
Сообщить("Компонента для сканера штрих-кодов не загружена");
КонецПопытки

Как-нибудь можно эту dll на 8.1 подключить или нет?

Спасибо!

Ответ:

У меня тоже недавно всплыла такая проблема. Конвертировать на более позднюю версию 1с не было возможности т.к. dll с которомыми данная конфигурация работает просто переставали работать и 1с вываливалась с ошибкой.
Проблему решил следующим образом:
Создал пустую базу 8.3 в которой сделал обработку инициализации компоненты и затем из 8.1 по COM соединению обращался к созданной ранее базе и там инициализировал компоненту. Затем уже в 8.1 вызывал методы этой компоненты.
Конечно это костыльно, но другого выхода пока не нашел(

Пример кода 8.3:
Перем Драйвер Экспорт;
Функция ПодключениеКомпонентыККТ() Экспорт
Попытка

Макет = ПолучитьМакет("ИнтеграционнаяКомпонента");
Адрес = ПоместитьВоВременноеХранилище(Макет);
ПодключитьВнешнююКомпоненту(Адрес, "ИнтеграционнаяКомпонента", ТипВнешнейКомпоненты.Native);
Драйвер = Новый("AddIn.ИнтеграционнаяКомпонента.SMDrvFR1C20");
Результат = Истина;​

Исключение

Результат = Ложь;​

КонецПопытки;
Возврат Результат
КонецФункции

Пример кода 8.1

Функция СоздатьОбъектДрайвера(Драйвер) Экспорт

Результат = Истина;

Попытка

СтрокаСоединения="File="""Путь к базе""";
КомОбъект= Новый COMОбъект("V83.ComConnector");
Коннект = КомОбъект.Connect(СтрокаСоединения);

Обработка = Коннект.Обработки.ПодключениеВнешнейКомпоненты.Создать();
РезультатПодключения = Обработка.ПодключениеКомпонентыККТ();
Если РезультатПодключения Тогда
Драйвер = Обработка.Драйвер;
КонецЕсли;​

Исключение
Кто занимался этим или сталкивался с подобными вынесениями обясните на простом примере сам принцип. Вроде с подключением внешних компонент все понятно.

// Пример заполнения таблицы значений ТЗ.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Стр = ТЗ.Добавить(); ЗаполнитьЗначенияСвойств(Стр, Выборка); КонецЦикла;
Не могли бы вы на этом примере объяснить, какую часть кода обычно выносят. Логично было бы вынести часть с запросом, но тогда как из внешней компоненты мы обратимся к БД из внешней компоненты в обход платформы? Текст выносить бессмысленно. Или выносить само формирование табличной части. Поделитесь опытом кто сталкивался с этим.

Ответ: А что слово «Несовместимо» всегда означает слово «Плохо»? Да мне кажется, что назови я свой стиль «1С:Самое плохое программирование на этом скриптовом движке, которое существует в природе (в переводе на литературный язык)!» и то наверняка найдутся желающие заценить этого зверя. А так похоже на классику: «Я Пастернака не читал, но я полностью с ним не согласен!»:)

Вопрос: Подключение внешней компоненты в 1с 8.3.6 и Win8


К самописной конфигурации надо подключить ВнешКомпоненту vk_rs232.dll. Вроде зарегистрировала через regsvr32.exe. "Вроде" потому, что получила сообщение что "компонента зарегистрирована, но чего-то там с брандмауэром". Понадеявшись на первую половину сообщения, пишу код в 1с
ПослеПодключения = Новый ОписаниеОповещения("ПослеПодключенияВК",ЭтаФорма); НачатьУстановкуВнешнейКомпоненты(,"C:\Controller\vk_rs232.dll"); НачатьПодключениеВнешнейКомпоненты(ПослеПодключения,"C:\Controller\vk_rs232.dll","ДЛЛ_Весы");
и получаю ошибку, что
"Установка внешней компоненты не выполнена! Возможно отсутствует компонента для используемого клиентского приложения!".

И теперь я не пойму:
1. Может все же компонента не зарегистрировалась в реестре - как ее там проверить?
2. Может ее "версия" не работает под Win8, хотя она у меня 32-бит.
3. Может сама 1с слишком новая, т.е. соответственно не может работать с этой dll-кой?
4. Ну и банальное - я пишу что-то не то.

Ответ: И все это привело меня в следующей проблеме. ВнешКомп Установлена, теперь ее надо Подключить. И тут оба варианта
ПодключитьВнешнююКомпоненту("C:\Controller\vk_rs232.dll","Весы")
ПодключитьВнешнююКомпоненту("ОбщийМакет.Макет","Весы")

Мобильное приложение позволяет осуществлять складские операции (инвентаризация товаров и основных средств, перемещение товаров) в 1С Бухгалтерия 3.+. Приложение разработано нативно на Android. Для полноценной работы при обмене через файл требуется только внешняя обработка. Для данного приложения не нужны промежуточные базы и какое-либо дополнительное ПО. Приложение может работать при полном отсутствии связи.

Функциональные возможности:
. Инвентаризация товаров;
. Инвентаризация основных средств;
. Перемещение товаров;

Ссылка на скачивание.

История версий.

Поддержка версий Android.

Android 4.4 и выше.

Поддержка конфигураций.

1С: Бухгалтерия 3.+

Поддержка сканеров штрихкодов и ТСД.

  • GS-М100BT поддерживается в режиме SPP;
  • ТСД CARIBE PL 50L
  • Поддерживаются любые сканеры в режиме HID подключенные через OTG.

Функционал.

Инвентаризация товаров.

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

Табличная часть

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

Выгрузка документов в 1С

Инвентаризация основных средств.

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

Если ваше приложение работает автономно, то загрузить документы можно из файла. Файл выгружается из 1С с помощью обработки.

Документы можно удалить все сразу, нажав на Удалить всё или по одному, смахнув влево или вправо.

Табличная часть

Нажав на нужный документ откроется табличная часть по аналогии с 1С. Табличная часть позволяет добавлять/изменять/удалять строки, редактировать количество.

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

Штрихкоды можно сканировать с помощью камеры, ручного сканера, сканера GS-M100BT, ТСД Carible PL 50L или ввести вручную.

Алгоритм поиска штрихкода следующий:

Соответствие штрихкода ищется в памяти устройства, если не найдено, то ищется в базе 1С. Если в результате поиска найдено, то произведётся поиск в табличной части документа. Если объект будет найден в табличной части, то в этой строке будет установлено фактическое наличие. Если объект не будет найден в табличной части, то он будет добавлен в табличную часть документа с фактическим наличием.

Выгрузка документов в 1С

Завершенные документы выгружаются в 1С из меню табличной части.

По аналогии с загрузкой документы можно выгружать онлайн в 1С или через файл.

Назначение и печать штрихкодов номенклатуры.

Для установки штрихкода и печати этикеток необходимо подключить внешнюю печатную форму и в карточке Номенклатуры и нажать на Печать штрихкода. Если у данной номенклатуры нет штрихкода, то штрихкод автоматически сформируется и выведется на печать этикетка. Этикетка будет напечатана размером 60Х30.

Назначение и печать этикеток основных средств.

В качестве штрихкода для ОС используются код справочника ОС. Для печати необходимо подключить внешнюю печатную форму и в карточке ОС нажать Печать штрихкода. Этикетка будет напечатана размером 60Х30.

Настройки.

Описание настроек.

Настройка bluetooth сканера GS-M100BT.

На экране Настройка можно настроить bluetooth сканер штрих кода GS-М100BT. Для первой настройки необходимо сначала открыть "Bluetooth", откроется стандартный интерфейс для сопряжения устройств(на разных устройствах будет выглядеть по разному).

Быстрый старт

  • Установить приложение
  • Опубликовать интерфейс OData в 1С
  • Настроить состав интерфейса OData
  • Загрузить все справочники, штрихкоды и документы из 1С в приложение, либо онлайн, либо через файл.
  • Провести складские операции
  • Выгрузить обработанные данные в 1С

Вариант синтаксиса: По имени и местоположению

Синтаксис:

ПодключитьВнешнююКомпоненту(<Местоположение>, <Имя>, <Тип>)
Параметры:

<Местоположение> (обязательный)

Тип: Строка.
Местоположение внешнего компонента.
В качестве местоположения может использоваться:
путь к файлу внешнего компонента в файловой системе (недоступно на веб-клиенте), не ZIP-архив;
полное имя макета, хранящего двоичные данные или ZIP-архив;
URL к внешнему компоненту, в виде двоичных данных или ZIP-архива, в , аналогичном ПолучитьНавигационнуюСсылку.
<Имя> (обязательный)

Тип: Строка.
Символическое имя подключаемой внешнего компонента.
Имя должно удовлетворять правилам именования встроенного языка.
<Тип> (необязательный)

Тип: ТипВнешнейКомпоненты.
Тип подключаемого внешнего компонента.
Не используется, если компонент упакован в ZIP-архив.
Описание варианта метода:

Подключает компоненты, выполненные по технологии Native и COM.
Компонент может храниться в информационной базе или макете конфигурации в виде двоичных данных или в ZIP-архиве.
Для режимов запуска "Тонкий клиент" и "Веб-клиент", компонент должен быть предварительно установлен методом УстановитьВнешнююКомпоненту.
Вариант синтаксиса: По идентификатору

Синтаксис:

ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>)
Параметры:

<ИдентификаторОбъекта> (обязательный)

Тип: Строка.
Идентификатор объекта внешнего компонента в виде ProgID (Programmatic Identifier) реестра MS Windows (например: "AddIn.Scanner").
Должно соответствовать информации, находящейся в регистрационной базе данных системы (Registry).
Описание варианта метода:

Компонент должен быть выполнен по технологии COM и зарегистрирован в реестре MS Windows.
Эти компоненты совместимы с компонентами 1С:Предприятия 7.7.
Внимание! Вариант метода не работает на сервере и во внешнем соединении.
Возвращаемое значение:

Тип: Булево.
Истина - подключение прошло успешно.
Описание:

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

Доступность:

Тонкий клиент, веб-клиент, сервер, внешнее соединение.
Примечание:

Внешние компоненты могут быть выполнены по технологии Native API или COM. Компоненты, выполненные по технологии COM, совместимы с компонентами 1С:Предприятия 7.7.
Веб-клиент может работать только с компонентами в информационной базе, упакованными в архив.
Тонкий клиент может работать с компонентами в информационной базе, упакованными в архив, и компонентами, расположенными в файловой системе.
Толстый клиент может работать со всеми вариантами хранения компонентов. При этом, если компонент установлен методом УстановитьВнешнююКомпоненту, то используется установленный компонент, а если не установлен, то компонент будет получен в момент подключения.
Сервер может работать со всеми компонентами. Компонент кэшируется на сеанс работы сервера.
Пример:

Если ПодключитьВнешнююКомпоненту("AddinObject.Scanner") Тогда
Сообщить("Компонента для сканера штрихкодов загружена");
Иначе
Сообщить("Компонента для сканера штрихкодов не загружена");
КонецЕсли;

23 октября вышел новый релиз конфигурации «1С: Управление торговлей» . В очередной раз в обновление вошли изменения по ВетИС, ЕГАИС, и почти никак не была затронута общая функциональность конфигурации.

Что изменилось?

Если посмотреть на структуру изменений, которые включены в последний релиз конфигурации «1С: Управление торговлей» , то больше половины - это обновление по ЕГАИС, ВетИС, и лишь несколько строк в описании релиза посвящено расширению функциональных возможностей программного продукта, которые не обусловлены никакими законодательными актами.

Разделы, в которых произошли изменения:

    в розничных продажах добавлена поддержка считывания двухмерного штрихового кода акцизных и федеральных специальных марок нового образца, содержащего цифровой идентификатор ЕГАИС;

    доработана интеграция с системой ветеринарного контроля (ВетИС);

    доработан обмен с системой ЕГАИС;

    добавлены новые возможности сервиса обмена электронными документами;

    выполнены доработки в части сервиса 1С:Бизнес-сеть;

    доработана интеграция с Яндекс.Кассой.

Что касается общей функциональности, здесь было внесено несколько изменений в блоке планирования и казначейства. И традиционно постоянные дополнения по учету НДС.

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

Оперативный учет становится регламентированным?

Традиционно конфигурация «1С: Управление торговлей» используется для автоматизации оперативного учета. При этом в связке с «1С: Бухгалтерией» принято было «сгружать» все требования по модификации типового функционала в «1С: УТ», чтобы сохранить возможность обновления бухгалтерской программы с минимальными трудозатратами.

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

В качестве одного из вариантов решения можно рассматривать использование механизма расширений, тем более что фирма «1С» активно этот функционал. Безусловно, такой подход потребует дополнительных трудозатрат от разработчиков. Но это оптимальный способ поддержки изменений в современных конфигурациях.

Более радикальным будет распределение функционала между типовой конфигурацией «1С: Управление торговлей» и какими-то внешними учетными или аналитическими системами. Здесь со стороны «1С» опять-таки сделано достаточно для эффективного решения такого рода задач на уровне платформы.

В любом случае, теперь при проектировании корпоративных учетных систем и распределении функциональных возможностей между конфигурациями, нужно иметь ввиду: не исключено, что обновлять «1С: Управление торговлей» придется если не так же часто, как «1С: Бухгалтерию» , то уже точно не 1-2 раза в год, как очень многие делали это раньше.

Рассказать друзьям