Решение проблем с регистрацией внешних компонент в терминале. Назначение и печать этикеток основных средств

Вопрос: Внешняя компонента 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","Весы")
ПодключитьВнешнююКомпоненту("ОбщийМакет.Макет","Весы")

Например, не получится переписать компоненту, если вы не её автор и исходников просто нет. Либо если для ее работы недостаточно поддерживаемых технологией Native API простейших типов (число, строка, булево, дата).

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

В этом случае можно вызывать компоненту на клиенте. Для этого достаточно выполнить из регламентного задания на сервере запуск еще одного сеанса 1С в котором на клиенте выполнить нужные действия. Ну и не забыть потом завершить запущенный сеанс.

Допустим, у нас в регламентном задании выполняется формирование и сохранение отчета, использующего для склонения ФИО внешнюю COM-компоненту NameDeclension.dll. На файловой базе такое регламентное задание будет работать корректно, на серверной компоненту подключить не получится.

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

#Если Клиент Тогда Процедура ВыполнитьФормированиеИСохранениеОтчета() Экспорт Если ПодключитьВнешнююКомпоненту("ОбщийМакет.NAMEDECL","Скл",ТипВнешнейКомпоненты.COM) Тогда Компонента = Новый ("AddIn.Скл.NameDeclension"); //Тут код формирования и сохранения отчета Иначе ЗаписьЖурналаРегистрации("РеглЗадания", УровеньЖурналаРегистрации.Ошибка, "Не удалось подключить внешнюю компоненту на клиенте"); КонецЕсли; КонецПроцедуры #Иначе Процедура ВыполнитьФормированиеИСохранениеОтчета() Экспорт ВыполнитьОперациюНаКлиенте("РеглЗадания.ВыполнитьФормированиеИСохранениеОтчета()"); КонецПроцедуры Процедура ВыполнитьОперациюНаКлиенте(ПараметрДляВыполнения) Экспорт ИмяПользователя = ""; ПарольПользователя = ""; ПутьКВнешнейОбработке = "c:/temp/Автозапуск.epf"; Кавычка = """"; КаталогBIN = КаталогПрограммы(); ПутьККонфигурации = СтрокаСоединенияИнформационнойБазы(); ПутьККонфигурации = СтрЗаменить(ПутьККонфигурации, Кавычка, Кавычка + Кавычка); СтрокаЗапуска = Кавычка + КаталогBIN + "1cv8.exe" + Кавычка + " ENTERPRISE" + " /IBConnectionString " + Кавычка + ПутьККонфигурации + Кавычка + " /N " + Кавычка + ИмяПользователя + Кавычка + " /P " + Кавычка + ПарольПользователя + Кавычка + " /Execute " + Кавычка + ПутьКВнешнейОбработке + Кавычка + " /C " + Кавычка + ПараметрДляВыполнения + Кавычка; ЗапуститьПриложение(СтрокаЗапуска); КонецПроцедуры #КонецЕсли

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

Попытка Выполнить(ПараметрЗапуска); Исключение КонецПопытки; ЗавершитьРаботуСистемы(Ложь);

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

Код для обычного приложения. Теоретически полностью аналогично будет работать и в управляемом.

p.s. Также этот подход можно использовать для выполнения любых клиентских процедур в регламентных заданиях.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Мобильное приложение позволяет осуществлять складские операции (инвентаризация товаров и основных средств, перемещение товаров) в 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С