Работа с массивом в функциональном стиле

Публикация № 1080273

Разработка - Практика программирования

Разработка предоставляет программный интерфейс для манипулирования массивом, используя который вы получите возможность альтернативной записи кода для традиционных и новых возможностей. Например так: ФасадМассива.НовыйМассив().Добавить(Элемент1).ПолучитьМассив();

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

Не вот так вот:

Результат = Новый Массив();

Результат.Добавить(ЧтоТоОдно);
Результат.Добавить(ЧтоТоДругое);

Возврат Результат;

А так:

Возврат ФасадМассива.МассивИзЭлементов(ЧтоТоОдно, ЧтоТоДругое).ПолучитьМассив();

Такое иногда называют функциональным стилем.

Бонусы при этом следующие:

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

Ключевые моменты

  1. Работает все это исключительно в рамках встроенного языка и не лезет во внешние по отношению к платформе среды.
  2. Общий модуль помечен как Клиент и Сервер, но на клиенте модуль будет генерировать серверный вызов на каждом шагу.
  3. Код фактически исполняется в момент вызова, т.е. если "остановить" программу между двумя вызавами "Добавить(...)" - первый фактически будет выполнен, второй - нет.

Использование

Операции над массивом всегда начинаются с ключевого слова ФасадМассива, далее должна быть стартовая функция, указывающая на массив, с которым будем совершать дейтсвия, далее промежуточные функции (одна и более или может даже ни одной), далее может следовать (а может и нет) финишная функция, которая будет возвращать результат действий

Стартовые функции

  • НовыйМассив - указыват, что нужно создать новый массив для дальнейших операций. Например: ФасадМассива.НовыйМассив()...
  • МассивИзЭлементов - принимает от 1 до 10 параметров и делает из них массив для дальнейших операций. Например: ФасадМассива.МассивИзЭлементов(Перечисления.СтавкиНДС.НДС0, Перечисления.СтавкиНДС.НДС10, Перечисления.СтавкиНДС.НДС20)...
  • УстановитьМассив - устанавливает существующий массив для дальнейших операций, например: ФасадМассива.УстановитьМассив(ДопустимыеСтавкиНДС)...

Промежуточные функции

  • Добавить - добавляет элемент в конец массива. Например: ФасадМассива.НовыйМассив().Добавить("строка1")...
  • ДобавитьВсе - принимает на вход массив элементов и добавляет все его элементы в конец своего массива. Например: ФасадМассива.УстановитьМассив(ДопустимыеСтавкиНДС).ДобавитьВсе(ДополнительныеСтавки)...
  • Вставить - вставляет элемент в указанную позицию (сдвигает существующие элементы вправо). Например: ФасадМассива.НовыйМассив().Добавить("строка1").Вставить(0,"строка2")...
  • Установить - вставляет элемент в указанную позицию (перезаписывает элемент на указанной позиции). Например: ФасадМассива.НовыйМассив().Добавить("строка 1").Установить(0,"новый текст строки 1")...
  • ДляКаждого - выполняет операцию для каждого элемента массива. Например: ФасадМассива.УстановитьМассив(МассивНовыхОбъектов).ДляКаждого("Элемент.Записать()");
  • Отображение - выполняет операцию для каждого элемента массива, записывая результат операции на место исходного элемента. Фактически, так можно "перейти" от массива одних элементов к массиву других, соответствующих им элементов. Например: ФасадМассива.УстановитьМассив(ЗарплатыСНДФЛ).Отображение("Элемент * 0,87");
  • Удалить - удаляет элемент массива с соответствующим индексом. Например: ФасадМассива.УстановитьМассив(МассивНовыхОбъектов).Удалить(0)...
  • Подмассив - получает массив, эквивалентный указанному диапазону исходного массива. Например: ФасадМассива.УстановитьМассив(МассивНовыхОбъектов).Подмассив(0, 1)...
  • Различные - удаляет из массива дублирующие элементы. Например: ФасадМассива.УстановитьМассив(МассивНоменклатуры).Отображение("Элемент.СтавкаНДС").Различные()...

Финишные функции

  • ПолучитьМассив - возвращает массив, полученный в результате выполненных операций. Например: ФасадМассива.МассивИзЭлементов(Перечисления.СтавкиНДС.НДС0, Перечисления.СтавкиНДС.НДС10, Перечисления.СтавкиНДС.НДС20).ПолучитьМассив();
  • ПолучитьЭлемент - возвращает элемент с указанным индексом. Например, ФасадМассива.УстановитьМассив(МассивНовыхОбъектов).ПолучитьЭлемент(0);
  • ПолучитьЭлементИлиЗначениеПоУмолчанию - возвращает элемент с указанным индексом или, если элемента с таким индексом нет - значение по умолчанию. Позволяет задать поведение на случай, если элементов не нашлось. Например: ФасадМассива.УстановитьМассив(СтавкиНДС).ПолучитьЭлементИлиЗначениеПоУмолчанию(0, Перечисления.СтавкиНДС.НДС20)
  • ПолучитьЭлементИлиВызватьИсключение - возвращает элемент с указанным индексом или, если элемента с таким индексом нет - вызвает исключение. Если заведомо известно, что отсутствие элементов - исключительная ситуация - позволяет не проверять наличие элемента отдельно. Например: ФасадМассива.УстановитьМассив(СтавкиНДС).ПолучитьЭлементИлиВызватьИсключение(0, "Ставки НДС не найдены, обратитесь к администратору")

Как уже упоминалось, в базовом варианте, Фасад используется так:
[стартовая функция].[промежуточные функции].[финишная функция]
Например:

ФасадМассива.НовыйМассив().Добавить("строка1").ПолучитьМассив()

Но может иметь смысл и использование фасада без промежуточных функций:

ФасадМассива.МассивИзЭлементов(Перечисления.СтавкиНДС.НДС10, Перечисления.СтавкиНДС.НДС20).ПолучитьМассив();

Также, может иметь смысл фасад без финишной функции:

ФасадМассива.УстановитьМассив(МассивНовыхОбъектов).ДляКаждого("Элемент.Записать()");

Способ записи

Записывать код можно двумя способами, в одну строку:

Результат = ФасадМассива.НовыйМассив().Добавить(Перечисления.СтавкиНДС.НДС20).ПолучитьМассив();

или, если операций много, в несколько строк:

Результат = ФасадМассива.НовыйМассив()
                .Добавить(Перечисления.СтавкиНДС.НДС0)
                .Добавить(Перечисления.СтавкиНДС.НДС10)
                .Добавить(Перечисления.СтавкиНДС.НДС20)
                .ПолучитьМассив();

В прилагаемой концигурации, кроме основной функциональности, присутствует общий модуль ФасадМассиваТест, содержащий функции, тестирующие все функции. Платформа 8.3.9.2233. Навскидку, ничто не мешает даунгрейду хоть до 8.0. Код полностью открыт.

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

Удачи!

Скачать файлы

Наименование Файл Версия Размер
Работа с массивом в функциональном стиле:

.cf 15,25Kb
19.06.19
1
.cf 15,25Kb 1 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DNN13 29 20.06.19 20:17 Сейчас в теме
2. spacecraft 20.06.19 21:05 Сейчас в теме
Идея не нова и имеет право на жизнь.
Только вот, "Такое иногда называю функциональным стилем.", кто fluent стиль называет функциональным?
3. m-rv 869 20.06.19 22:13 Сейчас в теме
(2) спасибо что обратили внимание, там опечатка, по задумке должно было быть "Такое иногда называюТ функциональным стилем"
Идея не нова в разработке вообще или на 1Се кто-то такое уже пилил?
5. spacecraft 21.06.19 07:37 Сейчас в теме
(3) и на 1С тоже пилили. Даже попытки использовать ООП в 1С делали. А уж паттерны использовали неоднократно. На этом же сайте есть статьи.
7. cool99 21.06.19 11:12 Сейчас в теме
(2)
кто fluent стиль называет функциональным

Ты это расскажи тем, кто разработал Linq... лично я в EF предпочитаю именно флюент синтаксис вместо запросного. ИМХО он более нагляден, т.к. действия разбиты на последовательность, что легче читать. Тем более, что само выражение в linq to sql в итоге равно IQuerable, т.е. сам запрос формируется при непосредственном получении данных уже в IEnumerable. Да и с самими коллекциями он используется чаще.
8. spacecraft 21.06.19 12:03 Сейчас в теме
(7) еще раз прочти. Речь про "Функциональный стиль", а не функциональность. Ничего против Fluent interface не имею и он меня устраивает.
4. nicxxx 239 20.06.19 22:21 Сейчас в теме
Плагины для xUnitFor1C посмотрите. Ожидаем.что(переменная).не_().равно(23);
It-developer; +1 Ответить
6. m-rv 869 21.06.19 08:42 Сейчас в теме
(4) ага, крутая штука, спасибо. Все это, как я понимаю, аналог джавовского assert, а я отталкивался от stream, так что можно сказать родственные разработки )
It-developer; +1 Ответить
9. neikist 21.06.19 13:52 Сейчас в теме
Тоже для себя такое писал когда задолбался от неудобства стандартных методов. Но без функций первого класса и замыканий до функциональщины тут как до луны((
10. kote 521 21.06.19 20:42 Сейчас в теме
(9) (6) функции первого класса
у меня получилось реализовать на 1С
как то) но реакция сообщества как то вселило тоску..

Пишу с телефона, ссылку не скину. Но посмотрите в публикациях, тут есть.
11. neikist 21.06.19 22:23 Сейчас в теме
(10)
Я в итоге решил что проще не мучаться а свалить на язык который все это из коробки поддерживает. Я работаю ради удовольствия а не для того чтобы задолбываться и мучаться.
12. kote 521 22.06.19 19:39 Сейчас в теме
(0) Хождение через ПараметрыСеанста контекста - вот тут я бы уже бросил разработку по избранному Вами пути, т.к. в серьёзном проекте это будет источником постоянных проблем..

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

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

Контекст должен быть.. не вот так -> ДОЛЖЕН БЫТЬ изолированным у каждой функции. Никаких совместно используемых параметров сеанса для функционирования всего этого быть не должно.

--
Поэтому я запретил своим ребятам использование Вашей разработки..
Но дайте знать, как решите эту проблему.
13. m-rv 869 24.06.19 14:31 Сейчас в теме
(12)
я может не понимаю сути проблемы.. что значит "параллельное использование кода"? если речь о разных сеансах - то и параметры сеанса будут разные. в одном сеансе мне не известно способов затавить работать два потока исполнения
14. spacecraft 24.06.19 15:32 Сейчас в теме
16. m-rv 869 24.06.19 17:16 Сейчас в теме
(14) фоновое задание - это отдельный сеанс
18. spacecraft 24.06.19 18:59 Сейчас в теме
(16) в том-то все и дело. Перенесли часть кода, где использовались параметры сеанса, в фоновые задания и все полетело.
19. kote 521 27.06.19 20:00 Сейчас в теме
(13) (14)не, в фоновых все будет изолировано. Там это будет работать.
Но если использовать оповещения и ассинхронный вызов процедур, то получите в параметре сеанса непредсказуемое значение
21. m-rv 869 28.06.19 09:24 Сейчас в теме
(19) имеете ввиду ОписаниеОповещения? там код будет тоже синхронно выполняться. Что такое асинхронный вызов, не теоретически, а практически как его сделать, кроме фонового задания?
15. ImHunter 204 24.06.19 16:34 Сейчас в теме
(0) Ну хз. В текучих утверждениях BDD - да, в таком стиле писать красиво и приятно.
Но вот в реализации для массивов - это как-то слишком мелко (для ФП). Мне кажется, букв меньше не становится.
17. m-rv 869 24.06.19 17:19 Сейчас в теме
(15)
была идея стримы полностью запилить, решил забросить "пробный шар" с массивами. но по реакции сообщества понимаю, что стримы 1Су не нужны (
20. kote 521 27.06.19 20:03 Сейчас в теме
(17) вы не так поняли. То что вы сделали нужно. Но реализация должна быть иной.
Оставьте свое сообщение

См. также

BIM: взаимодействие с платформой Autodesk Forge Промо

WEB v8 Строительство Абонемент ($m)

Предлагаемый пример демонстрирует широкие возможности для взаимодействия «1С:Предприятие» с платформой Autodesk Forge и позволяет вам получить базовые представления о применения технологий информационного моделирования в строительстве. Поддерживаются все версии платформы от 8.3.12 и выше до 8.3.18.

1 стартмани

25.11.2020    947    0    kandr    0    

"Учет штрафов ГИБДД" с возможной загрузкой из открытых источников в интернет Расширение конфигурации 1С: Предприятие 8.3

Обработка документов WEB v8 v8::УФ 1cv8.cf Россия БУ УУ Абонемент ($m)

Расширение конфигурации Бухгалтерия предприятия, редакция 3.0 (при минимальных изменениях любой типовой конфигурации), позволяющее вести историю данных по штрафам ГИБДД для справочника транспортных средств компании. Бонусом поставляется внешняя обработка, способная загружать эти данные из открытых источников в интернет.

4 стартмани

30.12.2019    8110    9    capitan    9    

Альтернативный способ добавления элементов и реквизитов на формы

Работа с интерфейсом v8 ERP2 УТ11 Россия Абонемент ($m)

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

1 стартмани

09.09.2019    11921    19    bmk74    4    

Аналоги номенклатуры для УТ 11.4, КА 2.4, ERP 2.4, Розница 2.2, Розница 8. Магазин автозапчастей. Расширение

Рабочее место Оптовая торговля Розничная торговля Управление торговлей Оптовая торговля Розничная торговля v8 Розница ERP2 УТ11 КА2 Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Россия УУ Абонемент ($m)

Расширение для работы с аналогами номенклатуры. Отлично подходит для работы с кроссами запчастей и товаров с аналогичными свойствами. Поддерживаемые конфигурации: УТ 11.4, КА 2.4, ERP 2.4, Розница 2.2, Розница 8. Магазин автозапчастей. Лёгкое подключение, без изменения конфигурации.

1 стартмани

30.08.2019    20200    20    AleSSandre    26    

Управляемая консоль запросов, отчетов 3.8.9 (расширение, внешняя обработка) Промо

Консоль запросов v8 v8::УФ v8::Запросы v8::СКД 1cv8.cf Абонемент ($m)

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

5 стартмани

14.08.2018    94910    2399    Evg-Lylyk    673    

Работа с релизами 1С и договорами ИТС

WEB БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Работа с релизами 1С и партнерским кабинетом.

2 стартмани

15.08.2019    14812    44    RocKeR_13    15    

Вам нравятся запросы в 1С?

Практика программирования Разработка v8 v8::Запросы 1cv8.cf Абонемент ($m)

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    21201    5    m-rv    88    

Печать конвертов из 1С Промо

Пакетная печать Документооборот и делопроизводство Документооборот и делопроизводство v8 1cv8.cf Россия Абонемент ($m)

Внешняя печатная форма для печати конвертов формата C4 и C5. Печать с полной разметкой почтового конверта и размещением адресов отправителя и получателя, включая индекс.

1 стартмани

07.12.2015    28496    14    sashs1980    5    

Модель объекта

Инструментарий разработчика v8 Абонемент ($m)

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    12902    0    vadim1980    5    

Цифровая подпись Cades-BES для XML средствами 1С с помощью КриптоПро

Защита и шифрование v8 1cv8.cf Россия Абонемент ($m)

Обработка иллюстрирует возможность подписания XML SOAP-конверта по стандарту Cades-BES средствами 1С с помощью внешней компоненты КриптоПРО "CAdESCOM" с учетом ГОСТ 2001 и ГОСТ 2012. Стандарт используется в различных механизмах государственных сайтов России, в том числе в СМЭВ и ГИС ЖКХ. Код не привязан к прикладному решению может быть встроен куда угодно, но только на платформе Windows.

1 стартмани

13.05.2019    12111    46    PythonJ    41    

Редактор объектов информационной базы 8.3

Универсальные обработки Обмен через XML v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.51 от 31.08.2020

2 стартмани

23.01.2019    31119    329    ROL32    39    

Конвертация данных Парус 7, 10 - ЗУП 2.5, ЗИКБУ 1.0, КА 1.1, УПП Промо

Внешние источники данных Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 КА1 ЗУП2.5 УПП1 БГУ Россия БУ Госбюджет Абонемент ($m)

Перенос данных Парус 7, 10 - ЗУП 2.5, ЗИКБУ 1.0, КА 1.1, УПП Переносит данные сотрудника, физического лица и начисления за произвольный период

1 стартмани

10.06.2014    32813    38    kns77    81    

Расширение "Курсы валют в формулах расчета динамических цен" для УНФ 1.6

Ценообразование, прайсы Ценообразование, анализ цен Ценообразование, анализ цен v8 УНФ УУ Абонемент ($m)

Расширение "Курсы валют в формулах расчета динамических цен" с автоматическим пересчетом цен при изменении курсов валют для конфигурации "Управление нашей фирмой, редакция 1.6"

3 стартмани

17.01.2019    16779    29    Palmer1976    6    

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8 v8::Mobile БУ УУ Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    45798    254    informa1555    232    

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

Инструментарий разработчика Универсальные обработки v8 1cv8.cf Абонемент ($m)

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

2 стартмани

06.10.2014    153046    2011    ekaruk    165    

Сравнение pdf-файлов актов сверки

Универсальные обработки Дебиторская и кредиторская задолженность Дебиторская и кредиторская задолженность v8 v8::БУ БП2.0 Россия БУ Абонемент ($m)

Обработка сравнивает два pdf-файла, в которых находятся стандартные печатные формы актов сверки, и показывает на экране совпадающие и/или отличающиеся по суммам документы взаиморасчетов.

1 стартмани

19.12.2018    18054    14    Torin99    2    

Выгрузка изображений из справочника на диск

Учет ТМЦ Универсальные обработки Учет ТМЦ v8 УТ11 Оптовая торговля, дистрибуция, логистика Россия Абонемент ($m)

Обработка позволяет записать изображения из справочка Номенклатура на диск в указанное место.

1 стартмани

30.11.2018    18222    6    wrooom    8    

Проверка VAT номеров

WEB v8 1cv8.cf Абонемент ($m)

Обработка для вызова сервиса проверка VAT номера.

1 стартмани

26.11.2018    13001    2    wtlz    1    

Выгрузка документов из ЗУП в БП (1С 8.2-8.3) Промо

Перенос данных из 1C8 в 1C8 Зарплата Зарплата v8 БП2.0 ЗУП2.5 Абонемент ($m)

Обработка для выгрузки документов из конфигурации "Зарплата и управление персоналом" 8.2 в конфигурацию "Бухгалтерия предприятия" 8.2. Использует правила обмена. В обработке создан удобный интерфейс для гибкого формирования списка документов кадрового учета и начисления ЗП.

1 стартмани

18.12.2012    15353    13    d.zhukov    20    

Обнуление остатков регистров бухгалтерии и накопления

Универсальные обработки Чистка базы v8 v8::БУ v8::ОУ v8::УФ КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ БГУ ERP2 БП3.0 УТ11 УХ КА2 ЗУП3.x Россия Абонемент ($m)

Обработка позволяет обнулить остатки по регистру накопления или бухгалтерии на определенную дату. Поддерживается большинство типовых конфигураций (БП 3, БП 2, УТ 11, УТ 10, ЗУП 3, ЗУП 2, БГУ 2, БГУ 1, ERP, УПП, КА 2, КА 1, УХ 3, УХ 1, УНФ). Гибкая настройка (отборы, заполнение реквизитов и любых полей корр. счета, возможность обнулять ресурсы выборочно). Несколько режимов работы. Два интерфейса: простой и с расширенным набором настроек.

2 стартмани

19.11.2018    24063    311    morozov.sv    50    

Навигатор по конфигурации базы 1С 8.3

Структура метаданных v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.69 от 27.09.2020

3 стартмани

28.10.2018    34949    313    ROL32    69    

Универсальная выгрузка/загрузка данных для отличающихся конфигураций (JSON, Такси+ОФ) Промо

Перенос данных из 1C8 в 1C8 Универсальные обработки Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Абонемент ($m)

Простой перенос через JSON данных между двумя базами 1С (документов, справочников, ПВХ, ПВР, счетов). Аналогична произвольной выгрузке в типовой "Выгрузка/загрузка XML", но может использоваться для отличающихся конфигураций. Подходит для любых пар баз с любым интерфейсом (управляемый + обычный). Без настроек. Не требует идентичности конфигураций и платформ. При переносе типы данных сопоставляются по наименованиям метаданных, объекты и ссылки по UID.

1 стартмани

22.10.2014    208624    3161    ekaruk    183    

Открывашка ячеек таблиц

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

1 стартмани

27.10.2018    17340    12    tormozit    31    

Универсальный инструмент для переноса данных через табличный документ (УФ)

Обработка документов Универсальные обработки Обработка справочников v8 v8::УФ 1cv8.cf Абонемент ($m)

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

5 стартмани

15.10.2018    34632    127    json    42    

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом

Печатные формы документов Универсальные функции Email v8 КА1 БП2.0 УТ10 УПП1 Абонемент ($m)

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    25041    17    stvorl    0    

Загрузка данных из М-Аптеки+ в 1С:Бухгалтерия 8 (ред. 3.0) Промо

Внешние источники данных Файловые протоколы обмена, FTP v8 v8::БУ БП3.0 Фармацевтика, аптеки БУ Абонемент ($m)

Обработка для загрузки файлов выгрузки из программы для автоматизации аптек и аптечных сетей М-Аптека+ в 1С:Бухгалтерия 8, редакция 3.0.

11.07.2014    35379    31    1C_MApteka    37    

TextRadar - нечеткий поиск в тексте

Разработка внешних компонент Поиск данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.09.2018    17918    27    TSSV    18    

Работа с публикациями "Инфостарт"

Практика программирования О сообществе WEB v8 УУ Абонемент ($m)

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    22134    13    RocKeR_13    16    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    28650    26    informa1555    26    

Внешняя компонента для работы по Web-socket протоколу x32 x64 Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

1 стартмани

30.03.2018    27289    40    Ditron    83    

Визуализация событий на временной шкале средствами "Поле HTML документа"

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

31.07.2018    24132    139    Plotks2017    27    

Работа с данными выбора

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

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

1 стартмани

17.07.2018    49120    17    kalyaka    16    

Пример использования REST API Яндекс Диска

WEB v8 1cv8.cf Абонемент ($m)

Пример использования REST API Яндекс Диска: чтение диска, добавление каталога, загрузка файла, скачивание файлов или каталогов, удаление файлов или каталогов.

1 стартмани

26.06.2018    26044    42    MKFreeUser    15    

Приложение Android для идентификации/распознавания образов (с обучением с одного раза, One-Shot Learning) с возможностью работы с 1С через веб-сервис

Мобильная разработка v8 Абонемент ($m)

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

1 стартмани

19.06.2018    15668    4    informa1555    15    

Обмен файловыми базами данных через Yandex диск

WEB v8 Россия Абонемент ($m)

Выполнение операций обмена с Yandex диском для файловых БД, по протоколу WebDav, в автоматическом или ручном режимах.

1 стартмани

11.06.2018    17553    7    slimper    1    

Конфигурация для просмотра публичных телеграм каналов

WEB v8 Абонемент ($m)

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

1 стартмани

02.06.2018    18305    11    DO_WHILE_LOOP    7    

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар")

Практика программирования v8 v8::Запросы 1cv8.cf Абонемент ($m)

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    30891    86    m-rv    57    

Tool1CD Beta в деле

Разработка внешних компонент v8 Абонемент ($m)

Пс, парень! Не хочешь немного сырых байтов?

1 стартмани

09.05.2018    26043    28    baton_pk    26    

Вы больше не будете разбирать Excel как раньше

Загрузка и выгрузка в Excel v8 1cv8.cf Абонемент ($m)

Кому не приходилось разбирать файлы в формате Excel? Все матерятся, плюются, требуют обещаний что "это в последний раз", но таки пишут загрузку из Excel. Потом форматы меняются, строки съезжают, колонки переставляют... Вам это не надоело?

1 стартмани

07.05.2018    29942    63    m-rv    34    

Просмотр, изменение реквизитов объекта. Сравнение двух одинаковых объектов метаданных ИБ

Универсальные обработки v8 1cv8.cf Россия Абонемент ($m)

Показывает реквизиты объекта (ов) или сравнивает два одинаковых объекта конфигурации справочники, документы.

1 стартмани

26.04.2018    18807    25    Vin_Tik    0    

Регистры правил [Расширение]

Инструментарий разработчика Информационная безопасность v8 v8::Права УТ11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    18277    10    33lab    1    

Правила конвертации документов ЗУП 2.5 - ЗУП 3.1

Обмен через XML Зарплата Перенос данных из 1C8 в 1C8 Зарплата v8 v8::СПР ЗУП2.5 ЗУП3.x Россия БУ Абонемент ($m)

Правила конвертации документов ЗУП 2.5 - ЗУП 3.1. Позволяют вести параллельную работу в базах ЗУП редакций 2,5 и 3.1.

10 стартмани

06.03.2018    40414    153    kostya_whiskas    24