Рубрика: 1C
Разработки на платформе 1С
Программный вызов формы выбора из списка с фильтром по дате.
Иногда бывает необходимо вызвать форму выбора списка документов с применением фильтра. Например показывать документы попадающие в интервал из дат.
1 2 3 4 5 6 7 8 9 |
СтандартнаяОбработка = Ложь; ФормаВыбора = Документы.ПоступлениеТоваровУслуг.ПолучитьФормуВыбора(); ФормаВыбора.Отбор.Дата.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы; ФормаВыбора.Отбор.Дата.ЗначениеС=элементыформы.start_date.Значение; ФормаВыбора.Отбор.Дата.ЗначениеПо=элементыформы.end_date.Значение; ФормаВыбора.Отбор.Дата.Установить(); ФормаВыбора.Открыть(); |
Если хотим обработать выбор, то например так:
1 2 |
выбранноезначение=ФормаВыбора.ОткрытьМодально(); элементыформы.Поступление.ТекущаяСтрока.ДокПоступления=выбранноезначение; |
Печатная форма приказа на выплату премии
Печатная форма приказа на выплату премий. Создается на основании документа «Премии организаций». Подходит для конфигураций УПП 1.3, КТ-Алкоголь.
Для адаптации в условия вашего предприятия нужно будет поправить макет.
Скачать можно здесь
Добавление записи в регистр сведений
Есть такой регистр сведений — Значения свойств обьектов. Спектр его применения — ну например хранения каких-то значений внешних отчетов и обработок. В моем случае, я буду хранить свойстово «1» в том случае если некое действие уже совершено над документом внешней обработкой, т.е. проверка «чтоб не два раза». Вот наглядный кусок кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
НаборД=регистрысведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); // устанавливаем параметры отбора по полному набору Измерений регистра: НаборД.Отбор.Объект.Установить(СсылкаНаОбъект); // Создаем новую строку в этом наборе записей: СтрокаДанных = НаборД.Добавить(); // определяем значения Измерений этой строки: СтрокаДанных.Объект=СсылкаНаОбъект; СтрокаДанных.Свойство=ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("алк00000011"); // определяем значения Ресурсов СтрокаДанных.Значение = "1"; НаборД.Записать(); |
Добавление записи в регистр накопления
Захотелось мне добавить записи в регистр накопления из обработки, т.е. не из документа-регистратора. Вот пример как это у меня получилось:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПередачаМатериаловВЭксплуатациюМатериалы.ФизЛицо, | ПередачаМатериаловВЭксплуатациюМатериалы.Количество, | ПередачаМатериаловВЭксплуатациюМатериалы.Номенклатура, | ПередачаМатериаловВЭксплуатациюМатериалы.СерияНоменклатуры, | ПередачаМатериаловВЭксплуатациюМатериалы.Ссылка.Ссылка КАК док, | ПередачаМатериаловВЭксплуатациюМатериалы.Ссылка.Дата |ИЗ | Документ.ПередачаМатериаловВЭксплуатацию.Материалы КАК ПередачаМатериаловВЭксплуатациюМатериалы |ГДЕ | ПередачаМатериаловВЭксплуатациюМатериалы.Ссылка.Проведен = ИСТИНА"; //Запрос.УстановитьПараметр("Дата1", НачалоГода(текущаядата())); //Запрос.УстановитьПараметр("Дата2", КонецМесяца(текущаядата())); Результат = Запрос.Выполнить().Выбрать(); //РегистрыНакопления.ГрРасчетПотребностей.Записывать = Истина; //РегистрыНакопления.ГрРасчетПотребностей.Очистить(); пока Результат.Следующий() цикл Набор = РегистрыНакопления.ГрВыданнаяСпецодежда.СоздатьНаборЗаписей(); Набор.Отбор.Регистратор.Установить(Результат.Док); НоваяЗапись = Набор.ДобавитьПриход(); НоваяЗапись.Номенклатура = Результат.Номенклатура; НоваяЗапись.ДатаВыдачи = Результат.Дата; НоваяЗапись.Период = Результат.Дата; НоваяЗапись.Количество = Результат.Количество; НоваяЗапись.Серия = Результат.СерияНоменклатуры; НоваяЗапись.ФизЛицо = Результат.ФизЛицо; Набор.Записать(); конеццикла; |