Архив рубрики:

Запрос с нарастающим итогом

Запрос формирует таблицу с нарастающим итогом
план такой:
1) взять запрос в котором нужен нарастающий итог
2) поместить его во временную таблицу
3) взять эту таблицу в выборку 2 раза
4) связать таблицы по через «>=»
5) сгруппировать и упорадичить

Читать далее

Волшебный обмен между базами 1с через XML

В процедурах выгрузки/загрузки создается ФабрикаXDTO из схемы, которая хранится в макете как файл. Файл настроек схемы надо использовать один и тот же в обработках Загрузки/Выгрузки
Из Фабрики создается объект, его заполняю выгружаемыми данными
Фабрику сохраняю в XML
В процедуре загрузки из читаю фабрику из XML и пробегаю по объектам

Читать далее

Запись опубликована автором в рубрике с метками , .

Настройка СКД в макете Обработки

Иногда лень городить программное заполнение схемы.
Я делаю настройку в режиме предприятия, сохраняю в xml.
Этот xml помещаю в макет как двоичные данные
Потом в коде сохраняю xml из макета в tmp и подставляю ее в СКД ))

Читать далее

Волшебный запрос Проверка параметра

Запрос сам проверяет значение Параметра, иначе пришлось бы городить 2 текста запроса (если есть значение параметра и если нет) или «генерировать» текст запроса кусками.

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |   ДоговорыКонтрагентов.Ссылка
        |ИЗ
        |   Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
        |ГДЕ
        |   ВЫБОР
        |           КОГДА &Владелец ССЫЛКА Справочник.Контрагенты
        |               ТОГДА ДоговорыКонтрагентов.Владелец = &Владелец
        |           ИНАЧЕ ИСТИНА
        |       КОНЕЦ
        |   И ВЫБОР
        |           КОГДА &Владелец ССЫЛКА Справочник.Контрагенты
        |               ТОГДА ДоговорыКонтрагентов.ВидДоговора = &ВидДоговора
        |           ИНАЧЕ ИСТИНА
        |       КОНЕЦ
        |   И ДоговорыКонтрагентов.Наименование = &Наименование
        |   И ДоговорыКонтрагентов.Организация = &Организация";

    Запрос.УстановитьПараметр("Владелец", Контрагент);
    Запрос.УстановитьПараметр("Наименование", Наименование);
    Запрос.УстановитьПараметр("ВидДоговора", ВидДоговора);
    Запрос.УстановитьПараметр("Организация", Организация);

    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();

    Если Выборка.Следующий() Тогда
        Договор = Выборка.Ссылка;
    Иначе
        Если Контрагент = Неопределено Тогда

            ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Договор '" + Наименование + "' не найден!");
            Возврат Справочники.ДоговорыКонтрагентов.ПустаяСсылка();

        Иначе

            Договор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
            Договор.Владелец = Контрагент;
            Договор.Наименование = Наименование;
            Договор.ВидДоговора = ВидДоговора;
            Договор.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить();
            Договор.НалоговыйАгентПоОплате = Истина;
            Договор.Организация = ОбщегоНазначения.ГоловнаяОрганизация(Организация);
            Договор.Записать();
            Договор = Договор.Ссылка;

        КонецЕсли;
    КонецЕсли;

Волшебная процедура СКД — Таблица значений

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

Читать далее

Волшебный запрос, небольшой лайфхак

Подстановка в ВЫБОР параметра

Запрос = Новый Запрос("
|ВЫБРАТЬ
|    ВЫБОР &Перем
|        КОГДА 1
|            ТОГДА "Раз"
|        КОГДА 2
|            ТОГДА "Два"
|        КОГДА 3
|            ТОГДА "Три"
|        ИНАЧЕ "Много"
|    КОНЕЦ КАК РезультатВыбора");
Запрос.УстановитьПараметр("Перем",2);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Сообщить(Выборка.РезультатВыбора);

Волшебная процедура для работы с СКД

Создает Компановщик настроек.
Заполняет его отборами на основании Построителя (он на форме)
Подсовывает этот Компановщик в СКД и выводит результат в Дерево значений

используется тут: http://infostart.ru/public/91297

Читать далее

Волшебная процедура обращение к web-сервису 1с из 1с

Подключается к 1с82 web-сервису, получает от него описание типа
Создает переменную этого типа
Создает файл (dbf обмена)
Помещает файл в переменную и отдает на web-сервис для обработки, получает от него результат обработки

Читать далее