Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
09 окт 2024, 04:21

Создание документа для выгрузки элементов справочника

Автор valeron174, 10 дек 2018, 10:05

0 Пользователей и 1 гость просматривают эту тему.

valeron174

Доброго времени суток.
Стоит задача создания базы для учёта выдачи карт гражданам.
На данный момент создан справочник граждан (с возможностью загрузки фото).

Теперь нужно сделать функционал выгрузки, документ со следующей информацией, который должен храниться в базе:

  • Номер и дата выгрузки
  • ФИО (Наименование)
  • Фото (выгружать файл)
  • Категория
  • Срок действия категории
  • Отметка о повторном обращении
  • Примечание
По возможности хотелось бы либо отбирать граждан для этой выгрузки по строчке в табличной форме "Заявление", если там в последней записи статус "Принят", либо сделать ручное добавление из справочника.
Если кому понадобится, прикрепляю выгрузку базы. (версия 8.3.10.2667)

alexandr_ll

Цитата: valeron174 от 10 дек 2018, 10:05
Доброго времени суток.
Стоит задача создания базы для учёта выдачи карт гражданам.
На данный момент создан справочник граждан (с возможностью загрузки фото).

Теперь нужно сделать функционал выгрузки, документ со следующей информацией, который должен храниться в базе:

  • Номер и дата выгрузки
  • ФИО (Наименование)
  • Фото (выгружать файл)
  • Категория
  • Срок действия категории
  • Отметка о повторном обращении
  • Примечание
По возможности хотелось бы либо отбирать граждан для этой выгрузки по строчке в табличной форме "Заявление", если там в последней записи статус "Принят", либо сделать ручное добавление из справочника.
Если кому понадобится, прикрепляю выгрузку базы. (версия 8.3.10.2667)
Что имеется ввиду под "функционалом выгрузки"?
Вы хотите выгружать информацию в какой-то файл? Какая структура файла?

wise

(0) поразбирайтесь с конфигурацией "Учёт обращений", ТАМ для Вас МНОГО интересных "вкусностей" будет...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

valeron174

Цитата: alexandr_ll от 10 дек 2018, 12:44
Что имеется ввиду под "функционалом выгрузки"?
Вы хотите выгружать информацию в какой-то файл? Какая структура файла?
Не знаю возможно ли такое сделать, но в голове у себя я представляю такую систему:
Создаётся документ, в нём присваивается номер и дата. В этот документ либо автоматически отбирать людей у которых в статусе заявления стоит "Принят", либо добавлять вручную из справочника(при добавлении человека в список, в справочнике автоматически делается отметка о выгрузке). Этот документ сохраняется для истории. И в этом документе добавить кнопку, при нажатии на которую сформируется таблица.

Но в поле фото остаётся либо пустым, либо записывается название файла, и выгружается файл фото по каждому человеку.

Как программно описать кнопку для выгрузки я ещё представляю. А вот как создать сам документ с выбором нескольких граждан из справочника я не знаю...

alexandr_ll

Создание документов в конфигураторе подробно описано в любой книге по программированию 1С. Например:
https://cloud.mail.ru/public/4PvL/SMJ8yvjrQ

valeron174

Цитата: alexandr_ll от 11 дек 2018, 10:58
Создание документов в конфигураторе подробно описано в любой книге по программированию 1С. Например:
https://cloud.mail.ru/public/4PvL/SMJ8yvjrQ
А каким образом можно сделать в документе выбор нескольких записей справочника? Если добавить поле, то там даёт выбрать только 1 человека.

alexandr_ll

Цитата: valeron174 от 11 дек 2018, 14:11
Цитата: alexandr_ll от 11 дек 2018, 10:58
Создание документов в конфигураторе подробно описано в любой книге по программированию 1С. Например:
https://cloud.mail.ru/public/4PvL/SMJ8yvjrQ
А каким образом можно сделать в документе выбор нескольких записей справочника? Если добавить поле, то там даёт выбрать только 1 человека.
В любом документе может быть табличная часть...

valeron174

Создал документ следующего вида:

При нажатии на кнопку с помощью конструктора запроса с отработкой результата создан вот такой код:
&НаСервере
Процедура ВыводТаблицыНаСервере()
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

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

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьНомер = Макет.ПолучитьОбласть("Номер");
ОбластьДата = Макет.ПолучитьОбласть("Дата");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабличнаяЧасть1ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ТабличнаяЧасть1ШапкаТаблицы");
ТабличнаяЧасть1ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ТабличнаяЧасть1ПодвалТаблицы");
ТабличнаяЧасть1ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("ТабличнаяЧасть1Детали");

ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();

ВыборкаНомер = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаНомер.Следующий() Цикл
ОбластьНомер.Параметры.Заполнить(ВыборкаНомер);
ТабДок.Вывести(ОбластьНомер, ВыборкаНомер.Уровень());

ВыборкаДата = ВыборкаНомер.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаДата.Следующий() Цикл
ОбластьДата.Параметры.Заполнить(ВыборкаДата);
ТабДок.Вывести(ОбластьДата, ВыборкаДата.Уровень());

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

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());

ТабДок.НачатьГруппуСтрок();
ТабДок.Вывести(ТабличнаяЧасть1ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();

ТабличнаяЧасть1ВыборкаДетальныеЗаписи = ВыборкаДетальныеЗаписи.ТабличнаяЧасть1.Выбрать();

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

ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ТабличнаяЧасть1ОбластьПодвалТаблицы);
ТабДок.ЗакончитьГруппуСтрок();
КонецЦикла;
КонецЦикла;
КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);     

//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

КонецПроцедуры

&НаКлиенте
Процедура ВыводТаблицы(Команда)

ВыводТаблицыНаСервере();


КонецПроцедуры

При этом ругается на элемент ТабДок Переменная не определена, пытался добавить в начале ТабДок = Новый ТабличныйДокумент;, но тогда при нажатии на данную кнопку ничего не происходит.

alex0402

Цитата: valeron174 от 02 янв 2019, 22:43ТабДок.Вывести(ОбластьПодвал);     
   
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

нет оператора
ТабДок.Показать();
Спасибо за Сказать спасибо

valeron174

Цитата: alex0402 от 03 янв 2019, 10:06
Цитата: valeron174 от 02 янв 2019, 22:43ТабДок.Вывести(ОбластьПодвал);     
   
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

нет оператора
ТабДок.Показать();
{Документ.ЗаявкаНаИзготовление.Форма.ФормаДокумента.Форма(90)}: Ошибка при вызове метода контекста (Показать)
   ТабДок.Показать();
по причине:
Метод недоступен на сервере

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск