Архив метки: 8.3

8.3

Пример работы с общим макетом типа ActiveDocument в клиент-серверном варианте

Имеется 1с сервер, 10 доп лицензии, Альфа-Авто на программных ключах. Позже было закуплено Бухгалтер

Имеется 1с сервер, 10 доп лицензии, Альфа-Авто на программных ключах. Позже было закуплено Бухгалтерия проф на 3 рабочих места на аппаратных ключах. Когда запускаю бухгалтерию, ломается (выходят из строя) ключ на 10 доп лицензии. 1с сервер ключ в порядке, альфа-авто тоже. В чем может быть проблема?

Как посчитать разницу между двумя датами?

Код уникален и сработает везде.

Проверка наличия в строке только цифр. Регулярные выражения

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

Если в строке только цифры, результат = 1, если нет — 0

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

По умолчанию в СКД группировки развернуты,
данный код в модуле отчета позволяет свернуть группировки до необходимого уровня YYYYY(0,1,2….)

Перемещение товаров между складами.

Есть некий справочник с номенклатурой и Регистр накопления » Товары на складах» с измерениями: Склад,Номенклатура; ресурс: Количество.

Необходимо реализовать механизм перемещения номенклатуры между складами посредством документа «Перемещение товара». Склады определяются в документе с помощью реквизитов «Склад отправитель» и «Склад получатель». Данный документ регистрирует изменение складских остатков и так же в нём должен быть реализован контроль остатков.

Подскажите пожалуйста подробно,как с помощью конструктора запроса в Обработке проведения это реализовать?

Функция расчет среднемесячного количества часов


// Часто при создании дополнительных расчетов необходимо в расчете это получить
&НаСервере
Функция СреднемесячноеКоличествоЧасов(Год) 
    
    Запрос = Новый Запрос;


    Запрос.УстановитьПараметр("Год",Год);
    Запрос.УстановитьПараметр("РабочийДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий);
    Запрос.УстановитьПараметр("ПредпраздничныйДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Предпраздничный);


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


    ВыборкаКалендаря = Запрос.Выполнить().Выбрать();
    Если ВыборкаКалендаря.Следующий() тогда
        ЧислоРабочихДнейВГоду = ?(ВыборкаКалендаря.ЧислоРабочихДней = NULL, 0, ВыборкаКалендаря.ЧислоРабочихДней); 
        ЧислоПредпраздничныхДнейВГоду = ?(ВыборкаКалендаря.ЧислоПредпраздничныхДней= NULL, 0, ВыборкаКалендаря.ЧислоПредпраздничныхДней);
    Иначе 
        ЧислоРабочихДнейВГоду = 0;
        ЧислоПредпраздничныхДнейВГоду = 0;
    КонецЕсли;
    
    СреднеМесячное = Окр((ЧислоРабочихДнейВГоду*8+ЧислоПредпраздничныхДнейВГоду*7)/12,2);


    Возврат СреднеМесячное;




КонецФункции

Как получить день недели прописью?

При разработке часто пользователю хочется видеть на форме день недели словом, например: Вторник , Среда и т.д. Собственно как получить день недели словом?

Через функцию формат:

 ДеньПрописью = Формат(ТекущаяДата(), "ДФ=дддд");

Еще вариант для краткого представления:

  мнстр = "пн
    |вт
    |ср
    |чт
    |пт
    |сб
    |вс";
    ДеньПрописью = СтрПолучитьСтроку(мнстр,ДеньНедели(ТекущаяДата()));