вторник, 27 марта 2018 г.

Для публикации в дополнительных отчетах и обработках ЗУП 3.1

В модуль объекта:

Функция СведенияОВнешнейОбработке() Экспорт

 // Функция формирует данные для записи нового элемента 
  // в справочник «ДополнительныеОтчетыИОбработки». 
  // Ключи формируемой структуры являются именами реквизитов нового элемента, 
  // значения — соответствующими значениями.
  РегистрационныеДанные = Новый Структура();
  РегистрационныеДанные.Вставить("Наименование", "Начисленный ФОТ по подразделениям");
  РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
  РегистрационныеДанные.Вставить("Версия", "v 0.2");
  РегистрационныеДанные.Вставить("Информация", "v 0.2");
  РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");

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

 НоваяСтрока = тз.Добавить();
  НоваяСтрока.Идентификатор = "ОткрытьОтчет";
  НоваяСтрока.Использование = "ОткрытиеФормы";      // соответствует Справочники.ДлополнительныеОтчетыИОбработки.Команды.ВариантЗапуска
  НоваяСтрока.Представление = "Обработка ""Начисленный ФОТ по подразделениям""";

 РегистрационныеДанные.Вставить("Команды", тз);

  Возврат РегистрационныеДанные;

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

Проверка на пустое значение

Проверка на пустое значение

Функция ПроверкаНаNULL (ПроверяемоеЗначение)
 Если ЗначениеЗаполнено(ПроверяемоеЗначение)  Тогда 
    ПроверяемоеЗначение = Число(ПроверяемоеЗначение);
 Иначе 
  ПроверяемоеЗначение = 0;
 КонецЕсли;
 Возврат ПроверяемоеЗначение;
КонецФункции 

вторник, 20 марта 2018 г.

Вывод результатов запроса в таблицу значений на форме (программное создание таблицы значений)

Вывод результатов запроса в таблицу значений на форме (программное создание таблицы значений) http://softproc.ru/public/574802/


Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        | Сотрудники.Наименование КАК Наименование
        |ИЗ
        | Справочник.Сотрудники КАК Сотрудники"; 
    Таблица = Запрос.Выполнить().Выгрузить();
 // добавим таблицу: сначала саму таблицу, потом колонку.
 Реквизиты = Новый Массив;
 Реквизиты.Добавить(Новый РеквизитФормы("ТаблицаНаФорме", Новый ОписаниеТипов("ТаблицаЗначений")));
 Для Каждого Ст ИЗ Таблица.Колонки Цикл
  Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, "ТаблицаНаФорме"));
 КонецЦикла;

 // добавим реквизиты на форму
 ИзменитьРеквизиты(Реквизиты);

 // добавим элементы формы
 Таб = Элементы.Добавить("ТаблицаНаФорме", Тип("ТаблицаФормы"));
 Таб.ПутьКДанным = "ТаблицаНаФорме";

 // запретим менять положение строк и сами строки, отключим командную панель
 Таб.ИзменятьСоставСтрок = Ложь;
 Таб.ИзменятьПорядокСтрок = Ложь;
 Таб.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;

 Для Каждого Ст ИЗ Таблица.Колонки Цикл
  Рек = Элементы.Добавить("Колонка" + Ст.Имя, Тип("ПолеФормы"), Таб);
  Рек.Вид = ВидПоляФормы.ПолеНадписи;
  Рек.ПутьКДанным = "ТаблицаНаФорме" + "." + Ст.Имя;
  Рек.Заголовок = Ст.Имя;
 КонецЦикла;

 // заполним таблицу
 ЗначениеВРеквизитФормы(Таблица, "ТаблицаНаФорме");

Проверка на пустые строки на форме

Проверка на пустые строки на форме




Если ПустаяСтрока(Объект.Организация) Тогда 
  Сообщить ("Выберите организацию");
  Возврат;
 ИначеЕсли Строка(Объект.НачалоПериода) = "01.01.0001 0:00:00" Тогда
  Сообщить ("Заполните начало периода");
  Возврат;
 ИначеЕсли Строка(Объект.КонецПериода) = "01.01.0001 0:00:00" Тогда
  Сообщить ("Заполните конец периода");
  Возврат;
 Иначе
  Сообщить ("Данные введены успешно");  
КонецЕсли;

среда, 14 марта 2018 г.

Вывод результатов запроса в таблицу значений на форме

Вывод результатов запроса в таблицу значений на форме


&НаСервере
Процедура ЗИПЗаявкиВыборНаСервере()
     Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
 | ЗИП.Наименование,
 | ЗИП.ЗИПСерийныйНомер,
 | ЗИП.ЗИПСтатус,
 | ЗИП.ЗИППривязка,
 | ЗИП.ЗИПНомерЗаявки,
 | ЗИП.ЗИПШтрихКод,
 | ЗИП.ЗИППримечание,
 | РемонтПротейСТ.НомерЗаявки
 |ИЗ
 | Справочник.ЗИП КАК ЗИП
 |  ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РемонтПротейСТ КАК РемонтПротейСТ
 |  ПО ЗИП.ЗИППривязка = РемонтПротейСТ.Ссылка
 |ГДЕ
 | РемонтПротейСТ.НомерЗаявки = &ТекущийНомерЗаявки ";

 
 Запрос.УстановитьПараметр("ТекущийНомерЗаявки", Объект.НомерЗаявки);
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    Объект.ЗИПЗаявки.Очистить();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл  
   НовСтр = Объект.ЗИПЗаявки.Добавить();
         ЗаполнитьЗначенияСвойств(НовСтр, ВыборкаДетальныеЗаписи); //при условии что имена полей ТЧ и выборки совпадают
    КонецЦикла;
 
КонецПроцедуры