Пример универсальной функции для создания схемы компоновки данных с группировкой колонок

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

Разработка - Универсальные функции

СКД

При использовании функции создания схемы компоновки данных согласно https://infostart.ru/public/575659/ было недостаточно возможности группировки колонок и вывода заголовка документа. Эти возможности и были добавлены в функцию.

Пример работы представлен в обработке:
1. В поле "Заголовок" указать заголовок документа
2. В поле "Текст запроса" ввести текст запроса
3. В поле "Группировка колонок" установить желаемую группировку колонок

Обработка протестирована в Документооборот 8 КОРП, редакция 2.1 (2.1.11.5). Платформа 8.3.12.1595. Текст доработанной функции приведен ниже:

// Создает схему компоновки данных для набора данных
//     запрос (типы: Строка, Запрос)
//     объект (типы: ТаблицаЗначений, ДеревоЗначений)
// Параметры:
//        НаборДанных    - Строка, Запрос, ТаблицаЗначений, ДеревоЗначений    - набор данных для создания схемы
//        СтруктураРесурсов    - Структура    - Структура полей ресурсов:
//            Ключ    - Имя поля
//            Значение    - Строка    - Агрегатная функция
//        ОписаниеКолонок    - ДеревоЗначений    - Описание выводимых колонок в формате:
//            Имя    - Имя колонки
//            Заголовок    - Заголовок колонки
//            ЭтоГруппа    - Истина, если колонка является группой, включающей другие колонки
//        Заголовок    - Строка    - Заголовок отчета
//        АвтоЗаполнениеДоступныхПолей    - Булево    - Значение флага автозаполнения доступных полей
//        ИмяСтандартногоМакетаОформления    - Строка    - Имя макета оформления
//
Функция СоздатьСхемуКомпоновкиДанных(НаборДанных, СтруктураРесурсов = Неопределено, ОписаниеКолонок = Неопределено, Заголовок = "", АвтоЗаполнениеДоступныхПолей = Истина, ИмяСтандартногоМакетаОформления = "")
    СКД = Новый СхемаКомпоновкиДанных;
    КоллекцияКолонок = Новый ТаблицаЗначений;
    КоллекцияКолонок.Колонки.Добавить("Имя");
    КоллекцияКолонок.Колонки.Добавить("ТипЗначения");
    КоллекцияКолонок.Колонки.Добавить("Заголовок");
    
    // Заполнение основных данных схемы
    ИсточникДанных = СКД.ИсточникиДанных.Добавить();
    ИсточникДанных.Имя = "ИсточникДанных";
    ИсточникДанных.ТипИсточникаДанных = "Local";
    
    Если ТипЗнч(НаборДанных) = Тип("Строка") или ТипЗнч(НаборДанных) = Тип("Запрос") Тогда
        ТекущийНаборДанных = СКД.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
        ТекущийНаборДанных.Имя = "ОсновнойНабор";
        ТекущийНаборДанных.Запрос = ?(ТипЗнч(НаборДанных) = Тип("Строка"), НаборДанных, НаборДанных.Текст);
        ТекущийНаборДанных.ИсточникДанных = "ИсточникДанных";
        ТекущийНаборДанных.АвтоЗаполнениеДоступныхПолей = АвтоЗаполнениеДоступныхПолей;
        
        // Формирование коллекции колонок набора данных
        ПостроительЗапроса = Новый ПостроительЗапроса;
        Если ТипЗнч(НаборДанных) = Тип("Строка") Тогда
            ПостроительЗапроса.Текст = СокрЛП(НаборДанных);
        Иначе 
            ПостроительЗапроса.Текст = СокрЛП(НаборДанных.Текст);
        КонецЕсли;
        ПостроительЗапроса.ЗаполнитьНастройки();
        
        Для каждого Элт из ПостроительЗапроса.ВыбранныеПоля Цикл
            Если ОписаниеКолонок <> Неопределено И ОписаниеКолонок.Строки.Найти(Элт.Имя, "Имя", Истина) = Неопределено Тогда
                Продолжить;
            КонецЕсли;
            
            Колонка    = КоллекцияКолонок.Добавить();
            Колонка.Имя    = Элт.Имя;
            Колонка.Заголовок    = Элт.Представление;
            Колонка.ТипЗначения = ПостроительЗапроса.ДоступныеПоля[Элт.ПутьКДанным].ТипЗначения;
        КонецЦикла;
        
    ИначеЕсли ТипЗнч(НаборДанных) = Тип("ТаблицаЗначений") или ТипЗнч(НаборДанных) = Тип("ДеревоЗначений") Тогда
        ТекущийНаборДанных = СКД.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
        ТекущийНаборДанных.Имя = "ОсновнойНабор";
        ТекущийНаборДанных.ИмяОбъекта = "ТаблицаИсточник";    
        ТекущийНаборДанных.ИсточникДанных = "ИсточникДанных";
        
        // Формирование коллекции колонок набора данных
        Для каждого Элт из НаборДанных.Колонки Цикл
            Если ОписаниеКолонок <> Неопределено И ОписаниеКолонок.Строки.Найти(Элт.Имя, "Имя", Истина) = Неопределено Тогда
                Продолжить;
            КонецЕсли;
            
            Колонка    = КоллекцияКолонок.Добавить();
            Колонка.Имя    = Элт.Имя;
            Колонка.Заголовок    = Элт.Заголовок;
            Колонка.ТипЗначения = Элт.ТипЗначения;
        КонецЦикла;
    Иначе            
        Возврат Неопределено;
    КонецЕсли;
    
    НастройкиПоУмолчанию = СКД.НастройкиПоУмолчанию;
    
    // Создание структуры.
    // Группировка, детальные записи и автовыбранное поле
    лГруппировка = НастройкиПоУмолчанию.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
    лГруппировка.Использование = Истина;
    АвтоПоле = лГруппировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
    АвтоПоле.Использование = Истина;
    
    // Добавление ресурсов
    Если ТипЗнч(СтруктураРесурсов) = Тип("Структура") Тогда            
        Для Каждого ЭлСтруктуры Из СтруктураРесурсов Цикл
            // Проверка, а существует ли поле ресурса среди полей набора
            Если КоллекцияКолонок.Найти(ЭлСтруктуры.Ключ) <> Неопределено Тогда
                // Проверка на правильность указания агрегатной функции
                Если    ЭлСтруктуры.Значение = "Сумма" 
                    ИЛИ ЭлСтруктуры.Значение = "Среднее"
                    ИЛИ ЭлСтруктуры.Значение = "Максимум"
                    ИЛИ ЭлСтруктуры.Значение = "Минимум"
                    ИЛИ ЭлСтруктуры.Значение = "Количество" Тогда
                    
                    ПолеРесурса             = СКД.ПоляИтога.Добавить();
                    ПолеРесурса.ПутьКДанным = ЭлСтруктуры.Ключ;
                    ПолеРесурса.Выражение   = ЭлСтруктуры.Значение + "(" + ЭлСтруктуры.Ключ + ")";                    
                    
                ИначеЕсли ЭлСтруктуры.Значение = "КоличествоРазличные" Тогда                      
                    
                    ПолеРесурса             = СКД.ПоляИтога.Добавить();
                    ПолеРесурса.ПутьКДанным = ЭлСтруктуры.Ключ;
                    ПолеРесурса.Выражение   = "Количество(Различные " + ЭлСтруктуры.Ключ + ")";
                    
                КонецЕсли;
            КонецЕсли;    
        КонецЦикла;                                         
    КонецЕсли;
        
    // Добавление полей в набор        
    Для каждого НоваяКолонка Из КоллекцияКолонок Цикл
        ПолеНабора = ТекущийНаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
        ПолеНабора.Заголовок = СокрЛП(НоваяКолонка.Заголовок);
        ПолеНабора.Поле = СокрЛП(НоваяКолонка.Имя);
        ПолеНабора.ПутьКДанным = СокрЛП(НоваяКолонка.Имя);
        
        // Удалим неопределено и NULL
        Массив = Новый Массив;
        Для каждого ТекущийТип Из НоваяКолонка.ТипЗначения.Типы() Цикл
            Если ТекущийТип = Тип("Неопределено") или ТекущийТип = Тип("NULL") или ТекущийТип = Неопределено или ТекущийТип = Null Тогда 
                Продолжить; 
            КонецЕсли;
            Массив.Добавить(ТекущийТип);
        КонецЦикла;
        ПолеНабора.ТипЗначения = Новый ОписаниеТипов(Массив,НоваяКолонка.ТипЗначения.КвалификаторыЧисла,НоваяКолонка.ТипЗначения.КвалификаторыСтроки,НоваяКолонка.ТипЗначения.КвалификаторыДаты);
    КонецЦикла;
    
    // Добавление полей в выбранные поля
    Если ОписаниеКолонок = Неопределено Тогда
        Для каждого Колонка из КоллекцияКолонок Цикл
            ВыбранноеПолеКомпоновкиДанных = НастройкиПоУмолчанию.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
            ВыбранноеПолеКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных(ПолеНабора.ПутьКДанным);
            ВыбранноеПолеКомпоновкиДанных.Использование = Истина;
        КонецЦикла;
    Иначе
        ДобавитьПолеКомпоновкиДанныхВКоллекцию(НастройкиПоУмолчанию.Выбор.Элементы, ОписаниеКолонок.Строки, КоллекцияКолонок);
    КонецЕсли;
    
    // Заголовок
    Если не ПустаяСтрока(Заголовок) Тогда
        ЗначениеПараметраВывода = НастройкиПоУмолчанию.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Заголовок"));
        ЗначениеПараметраВывода.Значение = Заголовок;
        ЗначениеПараметраВывода.Использование = Истина;
    КонецЕсли;
        
    // Оформление
    Если не ПустаяСтрока(ИмяСтандартногоМакетаОформления) Тогда
        ЗначениеПараметраВывода = НастройкиПоУмолчанию.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("МакетОформления"));
        ЗначениеПараметраВывода.Значение = ИмяСтандартногоМакетаОформления;
        ЗначениеПараметраВывода.Использование = Истина;
    КонецЕсли;
        
    Возврат СКД;
КонецФункции

// ДобавитьПолеКомпоновкиДанныхВКоллекцию
//    процедура добавляет колонки в коллекцию с группировкой
//
// Параметры
//    КоллекцияКолонок    – Коллекция    – коллекция полей компоновки данных
//    ОписаниеКолонок    - КоллекцияСтрокДереваЗначений    – описание колонок табличной части с группировкой
//    КолонкиНабораДанных    - ТаблицаЗначений    – Колонки набора данных
//
Процедура ДобавитьПолеКомпоновкиДанныхВКоллекцию(КоллекцияКолонок, ОписаниеКолонок, КолонкиНабораДанных)
    Для каждого Элт из ОписаниеКолонок Цикл
        Если Элт.ЭтоГруппа Тогда
            Группа    = КоллекцияКолонок.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
            Группа.Заголовок    = Элт.Заголовок;
            Группа.Использование    = Истина;
            ДобавитьПолеКомпоновкиДанныхВКоллекцию(Группа.Элементы, Элт.Строки, КолонкиНабораДанных);
        Иначе
            Если КолонкиНабораДанных.Найти(Элт.Имя, "Имя") <> Неопределено Тогда
                Поле    = КоллекцияКолонок.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
                Поле.Поле = Новый ПолеКомпоновкиДанных(Элт.Имя);
                Поле.Заголовок    = Элт.Заголовок;
                Поле.Использование = Истина;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры // ДобавитьПолеКомпоновкиДанныхВКоллекцию

 

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

Наименование Файл Версия Размер
Пример универсальной функции для создания схемы компоновки данных с группировкой колонок:

.epf 9,49Kb
09.10.18
1
.epf 9,49Kb 1 Скачать

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

Оставьте свое сообщение

См. также

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Универсальные функции Инструментарий разработчика Учет ТМЦ Учет ТМЦ v8 1cv8.cf Россия БУ Абонемент ($m)

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

1 стартмани

17.08.2015    45840    155    ekaruk    32    

Таблица значений в табличный документ (СКД)

Универсальные функции v8 Абонемент ($m)

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

1 стартмани

вчера в 17:41    950    0    markivkin    1    

Нормализация адреса с помощью API Почты России

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

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

2 стартмани

11.08.2020    423    0    Cerberdm    0    

Автоматическое построение формы внешней обработки по данным реквизитов, табличных частей и экспортных методов*

Работа с интерфейсом Универсальные функции v8::УФ Абонемент ($m)

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

1 стартмани

07.08.2020    614    0    TSSV    0    

Отправка электронной почты с помощью локального почтового клиента из 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    22830    13    stvorl    0    

Выполнение кода и получение данных запросов через HTTP сервис

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

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

2 стартмани

19.07.2020    1571    2    vladnet    7    

Универсальная функция получения дополнительных реквизитов и пример на форме

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

Решаем следующую задачу. Например, в справочнике «Номенклатура» — 10 дополнительных реквизитов: "Материал", "Наименование на английском", "Наименование на французском" и т.д., и 20 дополнительных реквизитов в справочнике «Характеристики номенклатуры». Необходимо вывести все характеристики по ТЧ "Товары", так называемую «Спецификацию» по «Заказу клиента» или «Заказу поставщика».

2 стартмани

05.05.2020    1387    1    papche    7    

Универсальное хранилище настроек

Универсальные функции v8 Абонемент ($m)

Универсальная константа для хранения любых настроек, например интеграции с API. Легко вносить новые настройки без "ломания" выполнения кода в модулях.

1 стартмани

10.03.2020    4849    1    v.krivenko    17    

Лучшие методы сравнения таблиц значений Промо

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

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

1 стартмани

02.02.2015    104782    37    ildarovich    59    

Шаблоны внешних обработок (БСП, управляемые формы)

Обработки Печать Универсальные функции БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Набор из шаблонов для создания внешних обработок вида: Внешняя печатная форма, Отчет на СКД, Схема СКД для сегмента, Внешняя обработка (Самостоятельная, Заполнение объектов, Создание связанных объектов). Предварительно наполнены базовым функционалом и некоторыми механизмами для отладки.

1 стартмани

01.03.2020    2678    23    riposte    2    

Выгрузка любого запроса или таблицы значений в текст JSON

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

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

1 стартмани

07.02.2020    7073    24    user796054    19    

Подпись PDF в новой версии 8.3.16

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

Проверяем новую возможность платформы 1С:Предприятие 8 по формированию подписей в PDF.

1 стартмани

23.12.2019    4257    6    kolya_tlt    7    

Генерация QR-кода программная и интерактивная (код открыт, управляемая форма, обычное и управляемое приложение, API) Промо

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

Обработку можно быстро и легко интегрировать в любую конфигурацию с и без БСП (Библиотека Стандартных Подсистем).

3 стартмани

04.02.2016    46289    172    TuneSoft    26    

Простой способ загрузить файл Excel на тонком клиенте.

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

Самый простой способ загрузить файл Excel на тонком клиенте - это скопировать лист Excel в "табличный документ" на форме обработки и обрабатывать уже поля "табличного документа".

1 стартмани

30.10.2019    7133    2    John_d    16    

Версионирование объеков УТ 10 с возможностью перехода к сохраненной версии

Журнал регистрации Универсальные функции v8 УТ10 Абонемент ($m)

Версионирование объектов УТ 10.3 с возможностью перехода к сохраненной версии. Взята стандартная система версионирования УПП, добавлена возможность восстановления ранее сохраненной версии.

1 стартмани

28.10.2019    6385    24    art.prm    8    

Картинка вместо кнопки без html

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

Вариант замены стандартных кнопок на форме для тех, кого не устраивают кнопки 1С и нет особых возможностей делать все с использованием html. Тестировал работу на платформах 8.3.10, 8.3.13, 8.3.14

1 стартмани

23.10.2019    4890    3    zatoichi    3    

Методы для группировки данных по полю,полям в Таблице Значений на примере универсального метода списания по партиям, а также отбора строк в ТЗ по произвольному условию. Для 8.x и 7.7 Промо

Универсальные функции Практика программирования v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Я очень часто использую группировку данных по полю и полям, как в восьмерке, так и в семерке. Это аналог запроса Итоги, но там строится дерево, а в большинстве случаев нужны "плоские данные". Да и делать запрос в большинстве случаев более накладный процесс, чем работа с ТЗ. Все достоинства такого подхода приведены на примере метода универсального списания по париям, а так же отбора строк в ТЗ по произвольному условию. Для 7.7 еще отчеты сравнения двух ТЗ. Работая с различными базами для упрощения сравнения номенклатуры, или как аналог джойнов(join), сделал сравнение двух таблиц значений по нескольким полям. Пока группировки полей должны быть уникальны. Часто приходится искать дубли, для универсального поиска есть ДублиВТзПоПолю и пример в Тест.ert.

1 стартмани

25.06.2015    26976    3    Serginio    1    

Выгрузка данных из дерева значений 1С в формат JSON иерархический список (Сериализация ДереваЗначений в JSON)

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

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

1 стартмани

22.10.2019    5041    4    mwoleg    6    

Универсальная подсистема ДМ

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

ДМ — дополнительные модули Это не альтернатива или дополнение БСП. Данная подсистема призвана быстро получить множество нужных функций в любой конфигурации. Для использования подсистемы изменения в конфигурацию вносить не надо. К сожалению поддержка обычных форм прекращена и поэтому данная разработка предназначена только для УФ. Разработка ведётся с 2009 года, но именно этот релиз был подготовлен на платформе 8.3.15.1565

1 стартмани

22.10.2019    3798    4    strange2007    10    

Вывод QR-кода типовыми средствами.

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

Вывод QR-кода типовыми средствами. На данный момент очень часто нужно вывести в печатную форму QR-код. Показываю как на примере типового кода из УТ11 это сделать. Можно использовать в любых конфигурациях с обычными формами.

1 стартмани

21.10.2019    14307    26    Емельянов Алексей    46    

Автоматическая подстановка уничтожений временных таблиц в текст запроса Промо

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

Функция, которая сама подставляет в текст запроса "УНИЧТОЖИТЬ" в местах последнего использования ВТ.

1 стартмани

14.11.2015    19472    0    SeiOkami    3    

Генерация QR кода для любых конфигураций 1С (обычные и управляемые формы)

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

Для генерации используется компонента типовой конфигурации УТ11, встроенная в общий макет "КомпонентаПечатиQRКода". Ниже приведены процедуры, чтобы сделать обработку самостоятельно (только для УФ).

1 стартмани

11.10.2019    8426    41    dm1try    0    

Универсальное удаление движений регистров накопления по всем непроведенным документам

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

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

1 стартмани

27.09.2019    7923    10    John_d    15    

1С REST API клиент. Обмен из 1С с сайтом/магазином WordPress/WooCommerce с помощью REST API

Универсальные обработки WEB Универсальные функции Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 1cv8.cf УУ Абонемент ($m)

Обмен 1С с сайтом на WordPress и магазином Woocommerce. Внешняя обработка сделана как REST API клиент сайта WordPress, позволяет разработчику публиковать/изменять/удалять/просматривать посты/страницы/товары/фотографии (в связке с товаром/страницей) на сайте/магазине WordPress/Woocommerce. Обработки сделаны с использованием обычных форм, демо-формы использования в комплекте.

10 стартмани

29.07.2019    6772    11    osivv    14    

Библиотека математических функций 1.1 Промо

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

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

1 стартмани

18.12.2014    25047    11    alex271    67    

Экспортные процедуры и функции общих модулей БП 3.0, ЗУП 3.1, УТ 11

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

Таблицы экспортных процедур и функций общих модулей конфигураций БП КОРП 3.0, ЗУП КОРП 3.1, УТ 11 + обработка по формированию такой таблицы из любой конфигурации.

14.06.2019    8766    20    SanchoD    29    

Создание и запуск скрипта для ввода текста на базе AutoHotkey

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

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

1 стартмани

28.01.2019    5336    1    Wezoowy    1    

Универсальная функция - Сформировать результат СКД

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

Предлагаемая функция СформироватьРезультатСКД позволяет программисту комфортно применять систему компоновки данных для обработки информации текущей или внешней базы. Функцию целесообразно размещать в общем модуле или в расширении конфигурации на управляемых формах.

1 стартмани

19.05.2018    8020    7    pavley2002    1    

Полезные функции БСП Промо

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

Список часто востребованных, по моему мнению, функций из состава Библиотеки стандартных подсистем 2.2.

1 стартмани

01.02.2015    61243    25    spec8s    31    

Динамическое заполнение управляемой формы по макету (без использования расширений)

Работа с интерфейсом Универсальные функции v8::УФ Абонемент ($m)

Изменение управляемой формы (реквизиты, команды, элементы, предопределенные процедуры) на основании макета формы.

1 стартмани

11.05.2018    6760    0    vsbronnikov    0    

Подписка на события, преобразование объекта в JSONAPI, отправка в RabbitMQ

Внешние источники данных Универсальные функции v8 1cv8.cf Абонемент ($m)

Обработка содержит функции: - сериализация объекта 1с в JSONAPI - отправка в RabbitMQ по HTTP

1 стартмани

26.02.2018    10794    21    yaxinr    3    

Свертка таблицы значений. С блэкджеком и всем остальным

Практика программирования Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

22.01.2018    10471    2    dusha0020    10    

Регулярные выражения без COM объектов и внешних компонент Промо

Универсальные функции Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

09.02.2015    23792    8    boogie    38    

Определение MIME-типа файла

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

Небольшая, но полезная функция для определения MIME-типа файла по его расширению. Сэкономит время разработчикам.

1 стартмани

12.01.2018    10265    7    o.nikolaev    4    

Запуск приложений на клиенте из RDP-сессии

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

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

1 стартмани

30.10.2017    11391    6    GusevNA    4    

Простые подсистемы: Библиотека подсистем

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

Библиотека простых подсистем и наработок, облегчающих жизнь разработчика и внедренца, предоставляя относительно готовые решения. Логическое развитие линейки публикаций "Простые подсистемы". Базируются на БСП. Вошли часть ранее опубликованных подсистем и новые. Всего 5 штук (будет больше).

1 стартмани

26.10.2017    10845    9    pbabincev    1    

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр Промо

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

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

1 стартмани

14.02.2015    102118    97    daMaster    90    

Автозадачи

Управление бизнес-процессами (BPM) Универсальные функции v8::СКД Россия Абонемент ($m)

Универсальный механизм управления потоками задач в информационной базе 1С. Самый востребованный инструмент из "кастомизации на лету".

1 стартмани

01.08.2017    29184    179    1c-intelligence    39    

Шаблон внешней обработки регламентного задания с формой настройки параметров выполнения

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

Шаблон внешней обработки призван упростить программисту процесс реализации внешнего регламентного задания. Пригоден к использованию во всех конфигурациях на управляемых формах, в которых присутствует подсистема "Дополнительные отчеты и обработки" из состава библиотеки стандартных подсистем (БСП) версии 2.1 и выше.

1 стартмани

28.05.2017    24441    173    Bassgood    10    

Универсальная процедура по загрузке файла из интернета

Практика программирования WEB Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

Передаем в процедуру всего два параметра: откуда взять и куда положить. Остальное она сделает сама

1 стартмани

17.05.2017    15800    12    json    3    

Универсальная функция получения таблицы дат за период. С любым интервалом (день, неделя, месяц, квартал и т.д.) Промо

Универсальные функции Практика программирования v8 1cv8.cf Абонемент ($m)

Небольшая функция, возвращающая таблицу значений со всеми датами за период. Интервал дат можно задать любой: Секунда, Минута, Час, День, Неделя, Месяц, Квартал, Полугодие, Год.

1 стартмани

14.06.2014    37569    16    mtv:)    6    

Правильный вопрос

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

Заметили, что пользователи бездумно кликают по первой попавшейся кнопке, не удосужившись прочитать текст предупреждения или вопроса? Данная функция призвана решить данную проблему!

1 стартмани

15.05.2017    11218    0    SvoyakMartin    15    

Web сервис 1С

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

Пример реализации простого web сервиса. Особенность: не используются XDTO пакеты, определяемые в дереве конфигураций; возможность передачи любых структур данных: списки значений, таблицы значений, табличные документы и т.п.

1 стартмани

21.03.2017    29908    91    hiduk    34    

Набор математических функций

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

Небольшой набор математических функций для работы с массивами чисел.

1 стартмани

12.01.2017    13777    4    SvoyakMartin    17    

Сравнение строк с выводом различий Промо

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

Обработка созданная с целью представить реализованный мной алгоритм сравнения строк. Реализована на 1С 8.1, однако будет работать и на более поздних версиях.

1 стартмани

15.05.2014    21886    21    bahbah    16    

Сравнение строк. Наибольшая общая последовательность

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

Заданы две строки Строка1 и Строка2. Требуется найти наибольшую общую подпоследовательность (НОП) этих строк.

1 стартмани

14.11.2016    9533    2    Alex_YAM    4    

Набор процедур для парсера консоли запросов

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

Данный набор функций и процедур необходимо вставить в Консоль запросов для управляемого приложения 1С 8.2 - 8.3 (Такси) http://infostart.ru/public/64522/, и вы получите возможность разбирать сложные запросы на вложенные, вносить необходимые правки и собирать измененные подзапросы в запрос. Данный модуль не содержит консоли!!! Ее придется отдельно скачать по ссылке http://infostart.ru/public/64522/

1 стартмани

09.11.2016    9596    4    blockcode    5    

Организация выбора месяца из списка (универсально + НЕ модально )

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

Пришлось столкнуться с такой проблемой, как выбор месяца из ниспадающего списка (с элементами вида "НазваниеМесяца Год") с возможностью изменения года. Хочу предложить универсальный вариант реализации данного механизма на основе механизма http://infostart.ru/public/167549/ ЗЫ: основные отличия: - вместо "НачалоВыбораИзСписка" работаем с "ОбработкаВыбора" без модальности - Обратное преобразование в дату не только на русском - Универсальность процедур. Одна функция выбирается в нескольких полях.

1 стартмани

09.11.2016    13590    13    igorkosmos    5    

Включаем звук в 1С. Доступно и всерьез. Промо

Математика и алгоритмы Универсальные функции v8 1cv8.cf Абонемент ($m)

Как сделать воспроизведение звука в 1С без внешних компонентов? Решаем средствами интернета. Для тонкого, толстого и web-клиента.

1 стартмани

30.12.2013    80089    150    sikuda    37    

Отладка/доработка модуля менеджера "на лету"

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

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

1 стартмани

23.10.2016    28784    20    json    22    

Автоматическое разбиение строки на подстроки по ширине колонки / ячейки или по количеству символов

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

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

1 стартмани

21.10.2016    15228    3    SvoyakMartin    3    

Сверка таблиц при разработке через тестирование

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

Данная статья про инструмент, который я использую уже продолжительное время, и который, по моему мнению, заслуживает внимания. Также опишу несколько примеров его применения.

1 стартмани

09.10.2016    15208    10    json    1