День добрый.
Вариантов обмена с ПО Frontol много и все они заслуживают внимания. Различные облачные диски, сетевые каталоги, FTP, эл.почта, флешки и прочее.
Но тут я столкнулся со следующей проблемой.
Запускаем Аптеки на 1С.Розница Аптека от компании Рарус. База крутится на OS Linux Ubuntu 18.4. Платформа 8.3.16.х, Postress 11. Кассовое ПО Frontol.
Так уж получилось, что разработчики Библиотеки подключаемого оборудования решили, что часть функционала работы с файлами обмена должен производится на стороне сервера, но не предусмотрели, что на сервере с Linux может не стоять SMBclient или клиент вообще может работать удаленно через веб. Как итог, даже в локальной сети загрузить файл продаж невозможно. Выгрузить товары на кассовое ПО еще худо-бедно получалось, но не загрузка продаж.
Доказательством такого служит метод с модуле МенеджерОборудованияВызовСервера.ПолучитьПомещаемыеФайлы
В нем создается массив описаний файлов, в конструкторе которого указывается имена файлов, описанные со стороны Клиента.
Описание конструктора
ОписаниеПередаваемогоФайла (TransferableFileDescription)
По хранению и имени
Синтаксис:
Новый ОписаниеПередаваемогоФайла(<Имя>, <Хранение>)
Параметры:
<Имя> (необязательный)
Тип: Строка.
Положение файла на клиенте.<Хранение> (необязательный)
Тип: Строка.
Положение файла на сервере.Описание:
Задает расположение передаваемого файла на сервере и на клиенте.
Как следствие, обмен происходит с ошибками.
Особо разбираться не стал, пусть будет на совести разработчиков.
У меня были и другая задача - организовать обмен с удаленными торговыми точками, где не будет учетной программы. А раз мы не можем использовать локальные адреса файлов, пусть они даже будут на локальном диске с синхронизацией через облачные сервисы, то надо посмотреть в другую сторону.
И посмотрел я в сторону FTP.
Было разработано расширение, которое не ломая основной функционал обмена, дополняла его.
Был добавлен выбор способа обмена и отображение соответствующих реквизитов настройки.
Тест устройства производит подключение к FTP серверу, а также создает и удаляет файл с тестовой строкой в обоих каталогах обмена (только сейчас увидел ошибку имени реквизита входящего каталога XD ).
Внимание! Подключение по-умолчанию Пассивное. Если надо активное, можно поправить код в модулях (может позже добавлю)
Данная обработка успешно работает уже на двух точках, в ближайшее время они (торговые точки) будут только увеличиваться.
Как настроить Frontol для работы с FTP описывать тут не буду, все описано в Инструкции администратора. Как организовать FTP сервер так же не буду, их много на просторах Сети.
Хотел сделать публикацию бесплатной, но сайт не дает. Хотел сделать небольшой бета-тест и вообще, узнать интерес аудитории.
Буду рад заметкам, адекватным комментариям и советам. Я не стал причесывать код до идеального вида - не до этого было, так что не пинайте за стиль.
На чем все тестировалось:
Розница 8. Аптека, редакция 2.3 (2.3.3.25)
1С:Предприятие 8.3 (8.3.16.1148)
Frontol 6.7.0
Что в планах.
- Добавить обмен через E-mail (ведется разработка).
- Добавить запросы продаж по различным вариантам периодов.
- Попробовать исправить работу с файлами на стороне клиента.
- Разобраться что не так с обменом при прокси. Пока работает и так, но не люблю недоделок (буду рад советам).
ЗЫ Тестировал только на Рознице. Если кто оттестирует на УТ, УФН и прочем, буду раз обратной связи.
UPD 03.07.2020
Исправление ошибок.
UPD 18.10.2021
Обновились до версии 2.3.9.42.
Начиная с версии 3.1.1.5 в "1C:Библиотека подключаемого оборудования", механизмы работы с офлайн оборудованием выделены в отдельную изолированную подсистему.
Перечень офлайн оборудования был перенесен в отдельный справочник "Офлайн оборудование" (ОФ), общая форма обмена с ОФ была заменена на форму списка справочника, общие модули работы с оборудованием были поменяны и была исправлена проблема обмена с ОФ - перенесли обмен на клиентские модули.
Как итог, весь функционал упал.
Пришло переписывать почти все.
Постарался сделать в аналогичном стиле, как обычный обмен файлами (куча описаний оповещения - чуть мозги не сломал). Но работает. Есть предупреждение, что файл еще не был прочитан.
Длина поля порта увеличена до 5 знаков.