Архив автора: Anton

Автоматический тунель до MySQL базы MasterHost

В одном из проектов по обмену 1с — CMS сайт располагался на хостинге Masterhost. Прямой доступ в базу MySQL они не открывают, но можно поднять SSH тунель и через него есть доступ в базу.

Тунель открываю через putty, запускаю с параметрами его через VBS.
Т.о. доступ к базе на хостинге открыт на адресе localhost:3306
После обмена убиваю putty.

Читать далее

Обмен 1с с интернет магазином VirtueMart

Обмен спаравочниками
— Номенклатура,
— Цены,
Выгрузка на сайт остатков товаров
Загрузка в 1С Заказов, установка статусов заказа на сайте из 1С
СМС оповещение

Ashampoo_Snap_2013.08.09_12h31m29s_003_

Читать далее

Отчет по нескольким периодам на СКД

Отчет по нескольким периодам на Системе Компановки Данных (СКД)

Формирую из 2х наборов данных
первый набор — Запрос по остаткам
второй набор для вывода периодов продаж, генерируется в процедуре, используя «ОБЪЕДИНИТЬ ВСЕ»

сам отчет можно скачать тут http://infostart.ru/public/142953

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

Читать далее

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

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

Читать далее

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

        Иначе

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

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

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

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

Читать далее

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

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

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