четверг, 8 декабря 2016 г.

Использование характеристик в СКД

Просто скопировать в запрос СКД эти кода.

Категории:
{ХАРАКТЕРИСТИКИ
ТИП(Справочник.ХарактеристикиНоменклатуры)
ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
КатегорииОбъектов.Ссылка,
КатегорииОбъектов.Наименование
ИЗ
Справочник.КатегорииОбъектов КАК КатегорииОбъектов
ГДЕ
КатегорииОбъектов.НазначениеКатегории = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры))
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.КатегорииОбъектов
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА Категория }

среда, 7 декабря 2016 г.

Порядковый номер в запросе

ВЫБРАТЬ
 Валюты.Ссылка КАК Элемент,
 Валюты.Код КАК Код,
 Валюты.Наименование
ПОМЕСТИТЬ Нач
ИЗ
 Справочник.Валюты КАК Валюты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
 КОЛИЧЕСТВО(Нач1.Элемент) КАК ПорядковыйНомер,
 Нач.Элемент,
 Нач.Код,
 Нач.Наименование
ИЗ
 Нач КАК Нач
  ВНУТРЕННЕЕ СОЕДИНЕНИЕ Нач КАК Нач1
  ПО Нач.Элемент >= Нач1.Элемент

СГРУППИРОВАТЬ ПО
 Нач.Элемент,
 Нач.Код,
 Нач.Наименование

понедельник, 7 ноября 2016 г.

Число и дату строкой в запросе

Как в запросе получить число и дату строкой?

 Вот здесь было предложено решение: http://infostart.ru/public/331805/

Пример как выразить число 8.2:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    123.655 КАК Число_
ПОМЕСТИТЬ Числа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    1125.658

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    965.45
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПОДСТРОКА(Константы.Ц, Числа.Число_ / 10000000 + 1, 1) + ПОДСТРОКА(Константы.Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(Константы.О, СЕКУНДА, Числа.Число_ * 0.000006)) / 6 + 1, 1) + ПОДСТРОКА(Константы.Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(Константы.О, СЕКУНДА, Числа.Число_ * 0.00006)) / 6 + 1, 1) + ПОДСТРОКА(Константы.Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(Константы.О, СЕКУНДА, Числа.Число_ * 0.0006)) / 6 + 1, 1) + ПОДСТРОКА(Константы.Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(Константы.О, СЕКУНДА, Числа.Число_ * 0.006)) / 6 + 1, 1) + ПОДСТРОКА(Константы.Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(Константы.О, СЕКУНДА, Числа.Число_ * 0.06)) / 6 + 1, 1) + ПОДСТРОКА(Константы.Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(Константы.О, СЕКУНДА, Числа.Число_ * 0.6)) / 6 + 1, 1) + ПОДСТРОКА(Константы.Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(Константы.О, СЕКУНДА, Числа.Число_ * 6)) / 6 + 1, 1) + "." + ПОДСТРОКА(Константы.Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(Константы.О, СЕКУНДА, Числа.Число_ * 60)) / 6 + 1, 1) + ПОДСТРОКА(Константы.Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(Константы.О, СЕКУНДА, Числа.Число_ * 600)) / 6 + 1, 1) + ПОДСТРОКА(Константы.Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(Константы.О, СЕКУНДА, Числа.Число_ * 6000)) / 6 + 1, 1) КАК Строка
ИЗ
    (ВЫБРАТЬ
        "0123456789" КАК Ц,
        ДАТАВРЕМЯ(1, 1, 1) КАК О) КАК Константы,
    Числа КАК Числа

Пример как выразить дату:
ВЫБРАТЬ
    ПОДСТРОКА("0123456789", ДЕНЬ(&Дата) / 10 + 1, 1)
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * ДЕНЬ(&Дата))) / 6 + 1, 1)
    + "/"
    + ПОДСТРОКА("0123456789", МЕСЯЦ(&Дата) / 10 + 1, 1)
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * МЕСЯЦ(&Дата))) / 6 + 1, 1)
    + "/"
    + ПОДСТРОКА("0123456789", ГОД(&Дата) / 1000 + 1, 1)
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ГОД(&Дата) * 0.06)) / 6 + 1, 1)
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ГОД(&Дата) * 0.6)) / 6 + 1, 1)
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ГОД(&Дата) * 6)) / 6 + 1, 1) КАК Строка

четверг, 15 сентября 2016 г.

Не работает отладка фонового задания

Отладка фонового задания.

Вначале необходимо проверить, включена ли отладка на сервере.
Если не включена, то как включить ее, можно прочитать здесь: Включение отладки на сервере

После этого необходимо убедиться, что строка соединения сеанса отладки и строка соединения запуска отлаживаемой базы - одинаковы (так же важен регистр букв!):

вторник, 13 сентября 2016 г.

Внешняя печатная форма на СКД


 Внешняя печатная форма, формируемая на основании СКД.

 
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
 
 СтандартнаяОбработка = ложь;
 
 Печать(ДокументРезультат, ДанныеРасшифровки);
 
КонецПроцедуры

Функция Печать(ДокументРезультат, ДанныеРасшифровки = Неопределено)
 
 ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

четверг, 4 августа 2016 г.

Особенности использования 1С конвертации данных

Особенности использования 1С конвертации данных

1)ПКО обработчик перед выгрузкой:
Если в нем поставить "Отказ = истина", то выгружаться вообще ничего не будет.
2)ПКО обработчик при выгрузке:
Если в нем поставить "Отказ = истина", то будет выгружаться только ссылка. Если по этой ссылке существует объект, то он отобразиться в реквизите, если такого объекта нет - будет в

вторник, 2 августа 2016 г.

Запрос, по всем документам, у которых есть общий реквизит




Запрос формируется динамически, по всем документам, у которых имеется общий реквизит "Организация".

 
Процедура Инициализация()
 
 Исключения = Новый Массив;
 Исключения.Добавить("ЗаявкаНаДоставку");
 Исключения.Добавить("ЗаказПокупателя");
 Исключения.Добавить("ЧекККМ");
 
 ТаблицаДокументов = Новый ТаблицаЗначений;
 ТаблицаДокументов.Колонки.Добавить("Имя");
 ТаблицаДокументов.Колонки.Добавить("Реквизит");
 

вторник, 28 июня 2016 г.

Быстрый вывод результат запроса в табличный документ с помощью построителя


ТекстЗапроса = "ВЫБРАТЬ * ИЗ Справочник.Пользователи";                         
ЗапросаДанных = Новый Запрос(ТекстЗапроса);
РезЗапроса = ЗапросаДанных.Выполнить();

ТабДокумент = Новый ТабличныйДокумент;
Построитель = Новый ПостроительОтчета;
Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(РезЗапроса);
Построитель.ВыводитьЗаголовокОтчета = Ложь;
Построитель.ВыводитьШапкуТаблицы = Ложь;
Построитель.ВыводитьПодвалОтчета = Ложь;
Построитель.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.Расшифровка;
Построитель.Вывести(ТабДокумент);
ТабДокумент.ТолькоПросмотр = Истина;
ТабДокумент.Показать("Пользователи");

среда, 22 июня 2016 г.

Отправка электронной почты из 1с на внешние адреса

Функция, которая позволяет отправить электронное письмо на внешние ящики, в обход не возможности работы по ssl 1с 8.2:

Функция ПослатьПоПочте(ТемаСообщения = "",СообщениеТекст = "" ,СписокВложений = "")Экспорт
   
    Оправитель = "aaaaaa@yandex.ru";//Необходимо завести на Яндексе ящик и через него будет отправляться почта.
    Пароль = "ddddddd";
    ТекстСообщения = "Тест из 1сссс";