World Two

211
Рейтинг

Prometeus2011



  •   Регистрация: 12.02.2010 (14 лет назад)

  •   Был(а) на сайте: сегодня в 10:12

Друзья
  • Name Surname
  • Виктор Рудаков
Подписчики 14

Группы

Профессиональный разработчик

Рейтинг 211

Внешняя компонента JSON-валидатор

Инструменты и обработки Программист Платформа 1С v8.3 Windows Абонемент ($m) Архив с данными Разработка внешних компонент

Внешняя компонента под ОС семейства windows, реализующая функционал по проверке соответствия json-пакета заданной схеме ("Валидация").

1 стартмани

09.01.2023    3723    4    Prometeus2011    2       

19

Управление Selenium Web Driver из 1С (или парсинг из 1С по-взрослому)

Инструменты и обработки Программист Платформа 1С v8.3 Абонемент ($m) Архив с данными WEB-интеграция

Нет-нет, да и появляются заказы на парсинг сайтов. Обычно, для этих целей использую net. + Selenium nuget package. Однако, если клиент использует стек технологий 1С, то предпочтительней было бы не пороть отсебятину, а применять уже знакомую пользователям парадигму работы с ИТ-продуктами - без каких-либо лишних прослоек, вроде net. или JS. И вот я задался вопросом: "а можно ли?".

1 стартмани

29.12.2021    6052    19    Prometeus2011    33       

29

Внешняя компонента - универсальный, надежный перехватчик клавиатурных событий

Инструменты и обработки Программист Платформа 1С v8.3 Windows Абонемент ($m) Архив с данными Разработка внешних компонент

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

1 стартмани

29.11.2021    10126    31    Prometeus2011    16       

40

Перестроение индексов и сбор статистики во выбранным таблицам SQL

Инструменты и обработки Системный администратор Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) Инструментарий разработчика

Обработка позволяет произвести потабличное наглядное перестроение индексов и обновление статистики базы данных 1С, развернутой на базе СУБД sql.

1 стартмани

26.01.2018    12155    31    Prometeus2011    10       

6

Интерфейс для истории данных (платформенное версионирование) в режиме обычных форм

Отчеты и формы Системный администратор Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m) Внешняя обработка (ert,epf) Журнал регистрации

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

1 стартмани

12.01.2018    26415    86    Prometeus2011    12       

20

Мобильное приложение для склада с функцией голосового ввода

Инструменты и обработки Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Android Абонемент ($m) Архив с данными Логистика, склад и ТМЦ Мобильная разработка

Несложное приложение под Андроид предназначенное для выполнения операций по наборке и приемке товаров на складе, а также выполнения других складских операций. Мобильная часть решения написана под терминалы сбора данных на Android. Транспорт данных - POST - запрос на HTTP сервис. Серверная часть - сервис на базе 1С сервера.

2 стартмани

08.08.2017    26295    19    Prometeus2011    21       

32

Мобильное приложение для контрольно-пропускного пункта + схема работы КПП

Инструменты и обработки Для всех Платформа 1С v8.3 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Абонемент ($m) Архив с данными Оптовая торговля Терминал сбора данных

Решение позволяет на посту выезда из оптовой базы (магазина) контролировать идентичность данных товарного чека (накладной) и данных соответствующей накладной в ИБ организации. Для исключения подделок чеков и контроля ассортимента и количества вывозимого товара. Мобильная часть решения написана под терминалы сбора данных на Android. Транспорт данных - POST - запрос на HTTP сервис. Серверная часть - сервис на базе 1с сервера.

2 стартмани

19.05.2017    19241    4    Prometeus2011    11       

7

Конвертация данных объекта "Расписание регламентного задания" платформы 1C в формат CRON

Инструменты и обработки Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) Инструменты администратора БД

Алгоритм на основании расписания выполнения регламентного задания, описываемого данными объекта "Расписание регламентного задания", строит логически приближенное расписание в формате CRON.

1 стартмани

10.10.2016    13379    6    Prometeus2011    1       

3

Комментарии

DevЗапуск приложения мобильного устройства - что это?#187 22.04.24 12:25
В работе класса 1с ЗапускПриложенияМобильногоУстройства есть еще такой очень важный и иногда неприятный нюанс.
Все методы запуска (Запустить, ЗапуститьАсинх, ЗапуститьБезОжидания), принадлежащие этому классу, запускают приложение в контексте процесса ЗАПУСКАЮЩЕГО приложения (без флага FLAG_ACTIVITY_NEW_TASK). Со всеми вытекающими...
Визуально это выглядит как запуск другого приложения прямо в окне запускающего приложения. Т.е. новое "окно" в карусели окон не создается. Одно из неприятных последствий такого поведения - то, что если в запускаемом приложении есть баг и андроид его крашит, то крашится "Ваш" процесс (т.е. тот, который запустил сбойный пакет). Пример другого последствия: отсутствие этого флага в запускающем Намерении (Intent'е - в терминологии Андроида) не позволяет запускать активити (окна) системных настроек - например, запрашивать внесение приложения в белый список по питанию или открывать список wi-fi соединений и т.д. (правда, в случае с 1с это итак не получится, поскольку желание запуска таких окон надо еще в манифесте приложения прописать, а 1с не дает прямой доступ к манифесту МП).
Наблюдал еще и другие артефакты в поведении 1с МП - при запуске в контексте запускающего процесса.
Это обычно меняется установкой флага "FLAG_ACTIVITY_NEW_TASK" через метод "setFlags", применяемый к объекту намерения, но как устанавливать произвольные флаги намерения в 1с - я не нашел.

Но да... есть способ как заставить 1с создавать новый процесс при запуске приложения - через использование Deep Linking (https://wonderland.v8.1c.ru/blog/zapusk-mobilnykh-prilozheniy-1s-iz-vneshnikh-istochnikov/?sphrase_id=322051).

Заметка написана, на мой взгляд, слегка сумбурно, но если выкинуть там часть, которая говорит, что Вам следует поднять свой сайт(!!!), то все работает. То-есть: если создавать класс ЗапускПриложенияМобильногоУстройства с указанием глубокой ссылки: Новый ЗапускПриложенияМобильногоУстройства("android.intent.action.VIEW", "myapp://testPath?key1=1"), а не Новый ЗапускПриложенияМобильногоУстройства("android.intent.action.VIEW"), то операционка создает новый процесс. Единственное, что - запускаемое приложение в манифесте должно объявлять свою способность обрабатывать конкретные схемы deeplink (это то, что до двоеточия и двойного слеша ("myapp")).
ОбменУправление Selenium Web Driver из 1С (или парсинг из 1С по-взрослому)#33 17.04.24 11:48
(32) Если хотите кого-то обмануть, то советую попробовать курить в сторону sikulix. Возможно, не так быстро и надёжно работает, но универсально.

Порядок действий примерно такой: Сикуля (Глаз Бога))) выполняет задачу по имитации действий пользователя по сохранению нужных вам страниц в каталог, а скрипт на 1с или любом другом языке - их парсит.
ОбменЦентрализованный сбор логов в мобильном приложении#6 15.04.24 19:52
(5) Так и есть. С 26 версии getDeviceId deprecated). Вначале это было проблемой, но потом клиент с большим количеством устройств перешёл на использование Headwind MDM и проблема отпала. При работе с компаниями поменьше используется просто ФИО последнего авторизовавшегося пользователя.
ОбменЦентрализованный сбор логов в мобильном приложении#4 15.04.24 11:09
(3)Тоже программный. Спасибо.
ОбменЦентрализованный сбор логов в мобильном приложении#2 14.04.24 21:59
Не подскажете, как реализовано у вас получение и хранение идентификатора устройства? В смысле, что используется в качестве идентификатора?

Насчёт RabbitMQ: коротко заказчик отказался, хотя идея на поверхности. Причина не банальна: Компания использует проксирование всех входящих хттп запросов (через nginx). Данные тела запросов хардкорно складываются в СУБД в текстовом виде и потом их можно оттуда столь-же хардкорно выбрать обычным sql-запросом.
Какой бонус в таком олдскульном подходе? Это отсутствие жёсткого вендор-лока на чужие сервисы. Ну, например, можно взять любого тестировщика, который способен написать селект и сказать ему: "встань и иди! ")) И он пойдёт) В смысле выберет данные из БД в любом удобном для себя виде и может сделать с ними всё, что угодно.
Вначале тоже не понимал скрытого великолепия такого решения, но потом понравилось.
Понятно, что всё это хорошо, когда заказчик могуч в плане собственного ИТ и имеет инфраструктуру достаточной мощности.
Хотя к RabbitMQ прикоснуться тоже хочется, но пока задач нет.
ОбменЦентрализованный сбор логов в мобильном приложении#1 14.04.24 20:44
Невозможность выполнением нескольких фоновиков (регламентных заданий, на 18 версии мп нет) и вытекающие из этого проблемы управления исполнением приложения, привели к решению по разработке шлюза, который поднимает хттп сервер на локалхосте и берёт на себя всю логику по обмену. В 1с только прикладной уровень разработки и все обмены сводятся к 2м методам: плюнул данные в локалхост и если надо-прочитал из него-же состояние отправки. Причём, пользователи очень просили видеть состояние получения больших данных (базы марок по 300 мб могут грузиться долго). Шлюз позволил это реализовать со статусбаром, прерыванием пользователем и всеми другими бананами.
Шлюз разработали на Qt 6.x. Фреймворк
очень мощный, заточён под встроенные системы и имеет удобные и очень быстрые либы практически для всего, чего только можно, а если не хватает, то можно найти кучу сторонних библиотек.
Логи клиент императивно просил писать на его сервера. Был прямой запрет на использование сторонних сервисов.
С инженерной точки зрения отдельных инженерных решений обмен данными устроен очень близко к тому, что вы описываете. Максимальное количество устройств: 300+.
Бэк: node.js, визуализация данных - 1с.
MobileDevЗачем нам 1С:Элемент#66 11.04.24 8:46
(65) Вы ведь сейчас говорите про онлайн обработку данных со сканера в бэке?
По предложенному Вами инженерному решению, сразу видно, что вы поверхностно занимаетесь вопросом.
Нет сети в момент нахождения человека, например, в холодильнике с ТСД. Ни вай-фай ни мобильной сети.
Суть мп в том, что это автономная и надёжная в части хранения и передачи сделанной оператором работы, система - со своим набором данных. Потому-что доступ к данным, которые надо собрать, у заказчика может быть сопряжён со многими сложностями и происходить в неприятной обстановке)

Если у вас чёткий, надежный онлайн 24/7 по всей площади использования устройства-это самый простой кейс. Он для пресс-релиза. В полях всё ломается и надо быть готовым, что связь будет кусками и самая плохая, а данные нужны в бэке - чем быстрее-тем лучше. За это готовы много платить.

А, да, кстати, на мобильной платформе и с хттп-клиентом тоже беда. Работает он хуже, чем, допустим, на Qt (стабильность соединения ниже, программный интерфейс класса очень беден).

+ вы знали, что у мп 1с только один фоновый поток (как у файловой настольной БД), так-что все ваши фоновики выполняются строго последовательно?

Циферка предполагает вариант. Этот вариант - такой себе вариант, что и не вариант совсем). Вот и постарался указать на это.

Да что тут я всё это пишу-то. Обычно не ввязываюсь в холивары. Каждый инструмент-для своих задач. 1с-гениальная платформа для учёта. Всё, пожалуй.
MobileDevЗачем нам 1С:Элемент#64 10.04.24 15:17
(45) Вы не разработаете полноценное мобильное приложение для промышленного использования только на 1с. Ни по быстродействию ни по взаимодействию с ОС 1с не достаточно. Простой пример: есть у вас база марок по алкоголю на 150 тысяч строк. Длина марки до 150 символов со всеми криптохвостами. 1с на современном промышленном устройстве (которое можно отремонтировать,заменить, которое не глючит с запуска), например от атолла, которое вы сможете купить массово за разумные деньги (это от 20к) ложит 1с при поиске марки секунды на 4. Это фиаско. Sqlite такую задачу перемалывает за миллисекунды. 1с с скульлайт не работает никак.
Дальше. Фореграунд-сервисы, асинхронная отправка и получение данных. Логи действий пользователя (пользователи всегда врут-надо за ними следить) и т.д.
В общем, поделку сделать можно, мощное промышленное приложение, которым можно пользоваться - нет.
ОбменУсловно-бесплатное определение расстояний между точками с помощью сервисов геокодирования и Open source проектов#6 10.04.24 11:35
Пару лет назад у них 'сохранять куда-нибудь туда' считалось нарушением условий бесплатного использования сервиса)
ОбменОпыт перехода с УТ 10 на УТ 11#6 10.04.24 11:19
1. Сразу показалось, что объем операций у Компании не очень большой, т.к. вся вот эта тема с переносом цен из одной колонки в другую скорости работе не добавляют. По причине не большой интенсивности транзакций в базе всё это как-то работало.

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

3. Вообще, 1с программист - это очень многогранное искусство. Именно искуство. И досрочная пенсия с санаториями было-бы кстати), т.к. к сорока годам психика уже расшатана, а здоровье подорвано сидячим образом жизни.