Из "Модуля управляемого приложения" обратиться к команде документа
Доброе время суток.
Появилась у меня задача при запуске клиента формировать документ с заполнением из реестра, это все я сделал, но теперь нужно обратиться из Модуля управляемого приложения к Команде этого документа.
Нужно теперь обратиться к команде Документа
Появилась у меня задача при запуске клиента формировать документ с заполнением из реестра, это все я сделал, но теперь нужно обратиться из Модуля управляемого приложения к Команде этого документа.
Если ДеньНедели(ТекущаяДата()) = 1 Тогда
ТипСкупленныхЦенностей = ВнешниеСоединения.ПолучитьДанные(); // получаем данные из реесра
Если ТипСкупленныхЦенностей.Количество() > 0 Тогда
Для каждого ТипЦенности Из ТипСкупленныхЦенностей Цикл
ОбщиеДанныеСервер.ФормируемДокументПередачиСкупленныхЦенностей(ТипЦенности); // Создаем и заполняем документ.
КонецЦикла;
КонецЕсли;
КонецЕсли;
ПоказатьНужно теперь обратиться к команде Документа
По теме из базы знаний
- Внешние печатные формы для нетиповой конфигурации (управляемое приложение)
- Шаблон внешней печатной формы в управляемом приложении. Пример создания печатной формы.
- Создание внешних печатных форм под управляемым приложением с нуля
- Конструктор внешних печатных форм NEW beta (обычные и управляемые приложения!)
- Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В модуле управляемого приложения:
В общем модуле (ОбщиеДанныеСервер):
В общем модуле(ВнешниеСоединения):
В прикрепленном файле команды: Товарная накладная и Реестр, нужно обратиться к ним.
Спасибо.
Процедура ПриНачалеРаботыСистемы()
Если ДеньНедели(ТекущаяДата()) = 1 Тогда
ТипСкупленныхЦенностей = ВнешниеСоединения.ПолучитьДанные();
Если ТипСкупленныхЦенностей.Количество() > 0 Тогда
Для каждого ТипЦенности Из ТипСкупленныхЦенностей Цикл
ОбщиеДанныеСервер.ФормируемДокументПередачиСкупленныхЦенностей(ТипЦенности);
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПоказатьЕсли ДеньНедели(ТекущаяДата()) = 1 Тогда
ТипСкупленныхЦенностей = ВнешниеСоединения.ПолучитьДанные();
Если ТипСкупленныхЦенностей.Количество() > 0 Тогда
Для каждого ТипЦенности Из ТипСкупленныхЦенностей Цикл
ОбщиеДанныеСервер.ФормируемДокументПередачиСкупленныхЦенностей(ТипЦенности);
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
В общем модуле (ОбщиеДанныеСервер):
Функция ФормируемДокументПередачиСкупленныхЦенностей(ТипЦенности) Экспорт
//Создаем перемещение Скупленных ценностей в офис Металл
Документ = Документы.ПередачаСкупленныхЦенностейВЦО.СоздатьДокумент();
Документ.Организация = Константы.ОрганизацияПоУмолчаниюДляСкупки.Получить();
Документ.Филиал = Константы.ПодразделениеПоУмолчанию.Получить();
Документ.Дата =ТекущаяДата();
Документ.ТипЦенностей = ТипЦенности;
ЗаполнитьФорму(Документ);
Возврат Документ;
КонецФункции
Процедура ЗаполнитьФорму(Документ)
ДанныеВДокументе = Ложь;
День = 60*60*24;
Если Документ.ТипЦенностей = 2 Тогда
ТипСкупаемойЦенности = 2;
ИначеЕсли Документ.ТипЦенностей = 1 Тогда
ТипСкупаемойЦенности = 1;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СкупленныеЦенности.Регистратор,
| СкупленныеЦенности.НомерСтроки,
| СкупленныеЦенности.Активность,
| СкупленныеЦенности.СкупочнаяКвитанция,
| СкупленныеЦенности.ДатаСкупки,
| СкупленныеЦенности.Номенклатура,
| СкупленныеЦенности.Количество,
| СкупленныеЦенности.Сумма,
| СкупленныеЦенности.Номенклатура.ОбщийВес КАК НоменклатураВесОбщий,
| СкупленныеЦенности.Номенклатура.ЧистыйВес КАК НоменклатураВесЧистый,
| СкупленныеЦенности.Номенклатура.Проба КАК Проба,
| СкупленныеЦенности.Номенклатура.СерийныйНомер,
| СкупленныеЦенности.Номенклатура.Артикул,
| СкупленныеЦенности.ТипСкупаемойЦенности,
| СкупленныеЦенности.Металл КАК Металл
|ИЗ
| РегистрСведений.СкупленныеЦенности КАК СкупленныеЦенности
|ГДЕ
| СкупленныеЦенности.ДатаСкупки МЕЖДУ &ДатаНач И &ДатаКон
| И СкупленныеЦенности.ТипСкупаемойЦенности = &ТипСкупаемойЦенности
|
|УПОРЯДОЧИТЬ ПО
| СкупленныеЦенности.СкупочнаяКвитанция.Номер";
Запрос.УстановитьПараметр("ДатаКон", КонецДня(ТекущаяДата()-День));
Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ТекущаяДата()-(7*День)));
Запрос.УстановитьПараметр("ТипСкупаемойЦенности", ТипСкупаемойЦенности);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ТекущиеДанные = Документ.СписокЦенностей.Добавить();
ТекущиеДанные.СкупочнаяКвитанция = ВыборкаДетальныеЗаписи.СкупочнаяКвитанция;
ТекущиеДанные.ДатаСкупки = ВыборкаДетальныеЗаписи.ДатаСкупки;
ТекущиеДанные.Количество = ВыборкаДетальныеЗаписи.Количество;
ТекущиеДанные.Сумма = ВыборкаДетальныеЗаписи.Сумма;
ТекущиеДанные.Цена = ВыборкаДетальныеЗаписи.Сумма / ВыборкаДетальныеЗаписи.Количество;
ТекущиеДанные.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
ТекущиеДанные.Проба = ВыборкаДетальныеЗаписи.Проба;
ТекущиеДанные.ВесЧистый = ВыборкаДетальныеЗаписи.НоменклатураВесЧистый;
ТекущиеДанные.ВесОбщий = ВыборкаДетальныеЗаписи.НоменклатураВесОбщий;
ТекущиеДанные.СерийныйНомер = ВыборкаДетальныеЗаписи.НоменклатураСерийныйНомер;
ТекущиеДанные.Артикул = ВыборкаДетальныеЗаписи.НоменклатураАртикул;
ТекущиеДанные.Металл = ВыборкаДетальныеЗаписи.Металл;
ДанныеВДокументе = Истина;
КонецЦикла;
Если ДанныеВДокументе Тогда
Документ.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
КонецПроцедуры
ПоказатьВ общем модуле(ВнешниеСоединения):
Функция ПолучитьДанные() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СкупленныеЦенности.ДатаСкупки,
| СкупленныеЦенности.ТипСкупаемойЦенности
|ИЗ
| РегистрСведений.СкупленныеЦенности КАК СкупленныеЦенности
|ГДЕ
| СкупленныеЦенности.ДатаСкупки МЕЖДУ &НачалоПрошлойНедели И &КонецПрошлойНедели";
Запрос.УстановитьПараметр("КонецПрошлойНедели", КонецНедели(НачалоДня(ТекущаяДата())-1));
Запрос.УстановитьПараметр("НачалоПрошлойНедели", НачалоНедели(НачалоДня(ТекущаяДата())-1));
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ТипСкупленныхЦенностей = Новый Массив;
Тип = Неопределено;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НовыйТип = ВыборкаДетальныеЗаписи.ТипСкупаемойЦенности;
Если НовыйТип <> Тип Тогда
ТипСкупленныхЦенностей.Добавить(ВыборкаДетальныеЗаписи.ТипСкупаемойЦенности);
КонецЕсли;
ДанныеСуществуют = Истина;
Тип = НовыйТип;
КонецЦикла;
Возврат ТипСкупленныхЦенностей;
КонецФункции
ПоказатьВ прикрепленном файле команды: Товарная накладная и Реестр, нужно обратиться к ним.
Спасибо.
Прикрепленные файлы:
К команде нельзя ведь.
Если нужно печатать документы, то в том цикле, где они формируются - получать Табличные документы и выводить их на экран.
Можно даже универсальными механизмами, если есть БСП. (УниверсальныеМеханизмы.НапечататьДокумент(...))
Если нужно печатать документы, то в том цикле, где они формируются - получать Табличные документы и выводить их на экран.
Можно даже универсальными механизмами, если есть БСП. (УниверсальныеМеханизмы.НапечататьДокумент(...))
Добавил после цикла:
и 2 процедуры в общем серврном модуле, в котором переберает документы с датой сегодняшней и печатает...
ТабДок = Новый ТабличныйДокумент;
ОбщиеДанныеСервер.ТоварнаяНакладная(ТабДок);
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.КоличествоЭкземпляров = 3;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Напечатать();
ТабДок = Новый ТабличныйДокумент;
ОбщиеДанныеСервер.Реестр(ТабДок);
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.КоличествоЭкземпляров = 1;
ТабДок.Напечатать();
Показатьи 2 процедуры в общем серврном модуле, в котором переберает документы с датой сегодняшней и печатает...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот