Здравствуйте, возник вопрос. Как реализовать так что бы когда я проводил документ он создавался в другом документе? Вот есть код. Он был на кнопке. Но после того как я его вставил в ОбработкаПроведения, оно не работает.
Процедура ОбработкаПроведения(Отказ, РежимПроведения,МассивДокументов)
// Вставить содержимое обработчика.
РеализацияТоваровИУслугНаСервере(МассивДокументов);
КонецПроцедуры
Функция РеализацияТоваровИУслугНаСервере(МассивДокументов) // Вставить содержимое обработчика.
СписокСообщений = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст = " ВЫБРАТЬ
| ВложенныйЗапрос.Водители,
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Коэффициент,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.Сумма,
| ВложенныйЗапрос.ЦенаДоставки,
| ВложенныйЗапрос.ЦенаДоставкиЗаМКАД,
| ВложенныйЗапрос.Цена КАК Цена,
| ВложенныйЗапрос.Брак КАК Брак,
| ВложенныйЗапрос.Возврат как Возврат
|ИЗ
| (ВЫБРАТЬ
| ДоставкаТовары.Водители как Водители,
| ДоставкаТовары.Номенклатура КАК Номенклатура,
| ДоставкаТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ДоставкаТовары.Коэффициент КАК Коэффициент,
| СУММА(ДоставкаТовары.Количество) КАК Количество,
| СУММА(ДоставкаТовары.Сумма) КАК Сумма,
// | ДоставкаТовары.Маршруты.Водители КАК Водители,
| ДоставкаТовары.ЦенаДоставки Как ЦенаДоставки,
| ДоставкаТовары.ЦенаДоставкиЗаМКАД КАК ЦенаДоставкиЗаМКАД,
| ДоставкаТовары.Цена КАК Цена,
| ДоставкаТовары.Брак КАК Брак,
| ДоставкаТовары.Возврат как Возврат
// | ЕСТЬNULL(ЦеныПоставщиковСрезПоследних.ЦенаПоставщикаВал, 0) КАК Цена
| ИЗ
// | Документ.Доставка.Товары как ДоставкаТовары
| Документ.МаршрутПоездки.Маршруты КАК ДоставкаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
| ПО ДоставкаТовары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура.Номенклатура
| И ДоставкаТовары.Водители = ЦеныПоставщиковСрезПоследних.НастройкаЗагрузки.Контрагент
| ГДЕ
| ДоставкаТовары.Ссылка В(&МассивДокументов)
| И Брак = &Брак
| И Возврат = &Возврат
// | И ДоставкаТовары.Водители <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
// | И НЕ ДоставкаТовары.Номенклатура.Услуга
// |
| СГРУППИРОВАТЬ ПО
| ДоставкаТовары.ЦенаДоставки,
| ДоставкаТовары.ЦенаДоставкиЗаМКАД,
| ДоставкаТовары.Номенклатура,
| ДоставкаТовары.ЕдиницаИзмерения,
| ДоставкаТовары.Коэффициент,
| ДоставкаТовары.Водители,
| ДоставкаТовары.Цена,
| ДоставкаТовары.Брак,
| ДоставкаТовары.Возврат,
| ЕСТЬNULL(ЦеныПоставщиковСрезПоследних.ЦенаПоставщикаВал, 0)) КАК ВложенныйЗапрос
|ИТОГИ ПО
| Водители";
Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
Запрос.УстановитьПараметр("Брак",Ложь);
Запрос.УстановитьПараметр("Возврат",Ложь);
Результат = Запрос.Выполнить();
ВыборкаДокументов = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаДокументов.Следующий() Цикл
Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Док.Дата = ТекущаяДата();
Док.Контрагент = ВыборкаДокументов.Водители;
Док.Комментарий = "Сформирован по доставкам " + Док.Дата;
Док.Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяОрганизация2");
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(Док, глЗначениеПеременной("глТекущийПользователь"), Константы.ВалютаРегламентированногоУчета.Получить(), "Покупка");
ВыборкаТоваров = ВыборкаДокументов.Выбрать();
Пока ВыборкаТоваров.Следующий() Цикл
НоваяСтрока = Док.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаТоваров);
// Выполнить общие действия для всех документов при изменении номенклатуры.
// ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(НоваяСтрока, Док);
// НоваяСтрока.ЕдиницаИзмерения = ВыборкаТоваров.Номенклатура.ЕдиницаХраненияОстатков;
НоваяСтрока.Коэффициент = НоваяСтрока.ЕдиницаИзмерения.Коэффициент;
НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
// НоваяСтрока.Номенклатура = ВыборкаТоваров.Маршруты(Номенклатура);
// НоваяСтрока.ЦенаДоставки = ВыборкаТоваров.ЦенаДоставки;
КонецЦикла;
Если Док.Товары.Количество() > 0 Тогда
Док.Записать(РежимЗаписиДокумента.Запись);
СписокСообщений.Добавить("Создан документ: " + Док.Ссылка);
КонецЕсли;
КонецЦикла;
Возврат СписокСообщений;
КонецФункции
ПоказатьПо теме из базы знаний
- Обработка "ПроведениеИзМодуляПроведения".
- Универсальная обработка перепроведения документов по выбранному регистру не изменяя остальные движения
- 6-НДФЛ из ЗУП 2.5 без проблем. Специальная обработка проведения документов. Методика
- Обработки для проведения сценарного нагрузочного тестирования на примере конфигурации ЗУП версии 3.1.1.91
- Обработка проведения с отменой проведения
Найденные решения
Функция РеализацияТоваровИУслугНаСервере()//(МассивДокументов) // Вставить содержимое обработчика.
СписокСообщений = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст = " ВЫБРАТЬ
| ВложенныйЗапрос.Водители,
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Коэффициент,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.Сумма,
| ВложенныйЗапрос.ЦенаДоставки,
| ВложенныйЗапрос.ЦенаДоставкиЗаМКАД,
| ВложенныйЗапрос.Цена КАК Цена,
| ВложенныйЗапрос.Брак КАК Брак,
| ВложенныйЗапрос.Возврат как Возврат
|ИЗ
| (ВЫБРАТЬ
| ДоставкаТовары.Водители как Водители,
| ДоставкаТовары.Номенклатура КАК Номенклатура,
| ДоставкаТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ДоставкаТовары.Коэффициент КАК Коэффициент,
| СУММА(ДоставкаТовары.Количество) КАК Количество,
| СУММА(ДоставкаТовары.Сумма) КАК Сумма,
// | ДоставкаТовары.Маршруты.Водители КАК Водители,
| ДоставкаТовары.ЦенаДоставки Как ЦенаДоставки,
| ДоставкаТовары.ЦенаДоставкиЗаМКАД КАК ЦенаДоставкиЗаМКАД,
| ДоставкаТовары.Цена КАК Цена,
| ДоставкаТовары.Брак КАК Брак,
| ДоставкаТовары.Возврат как Возврат
// | ЕСТЬNULL(ЦеныПоставщиковСрезПоследних.ЦенаПоставщикаВал, 0) КАК Цена
| ИЗ
// | Документ.Доставка.Товары как ДоставкаТовары
| Документ.МаршрутПоездки.Маршруты КАК ДоставкаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
| ПО ДоставкаТовары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура.Номенклатура
| И ДоставкаТовары.Водители = ЦеныПоставщиковСрезПоследних.НастройкаЗагрузки.Контрагент
| ГДЕ
| ДоставкаТовары.Ссылка В(&Ссылка)
| И Брак = &Брак
| И Возврат = &Возврат
// | И ДоставкаТовары.Водители <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
// | И НЕ ДоставкаТовары.Номенклатура.Услуга
// |
| СГРУППИРОВАТЬ ПО
| ДоставкаТовары.ЦенаДоставки,
| ДоставкаТовары.ЦенаДоставкиЗаМКАД,
| ДоставкаТовары.Номенклатура,
| ДоставкаТовары.ЕдиницаИзмерения,
| ДоставкаТовары.Коэффициент,
| ДоставкаТовары.Водители,
| ДоставкаТовары.Цена,
| ДоставкаТовары.Брак,
| ДоставкаТовары.Возврат,
| ЕСТЬNULL(ЦеныПоставщиковСрезПоследних.ЦенаПоставщикаВал, 0)) КАК ВложенныйЗапрос
|ИТОГИ ПО
| Водители";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Брак",Ложь);
Запрос.УстановитьПараметр("Возврат",Ложь);
Результат = Запрос.Выполнить();
ВыборкаДокументов = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаДокументов.Следующий() Цикл
Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Док.Дата = ТекущаяДата();
Док.Контрагент = ВыборкаДокументов.Водители;
Док.Комментарий = "Сформирован по доставкам " + Док.Дата;
Док.Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяОрганизация2");
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(Док, глЗначениеПеременной("глТекущийПользователь"), Константы.ВалютаРегламентированногоУчета.Получить(), "Покупка");
ВыборкаТоваров = ВыборкаДокументов.Выбрать();
Пока ВыборкаТоваров.Следующий() Цикл
НоваяСтрока = Док.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаТоваров);
// Выполнить общие действия для всех документов при изменении номенклатуры.
// ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(НоваяСтрока, Док);
// НоваяСтрока.ЕдиницаИзмерения = ВыборкаТоваров.Номенклатура.ЕдиницаХраненияОстатков;
НоваяСтрока.Коэффициент = НоваяСтрока.ЕдиницаИзмерения.Коэффициент;
НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
// НоваяСтрока.Номенклатура = ВыборкаТоваров.Маршруты(Номенклатура);
// НоваяСтрока.ЦенаДоставки = ВыборкаТоваров.ЦенаДоставки;
КонецЦикла;
Если Док.Товары.Количество() > 0 Тогда
Док.Записать(РежимЗаписиДокумента.Запись);
СписокСообщений.Добавить("Создан документ: " + Док.Ссылка);
КонецЕсли;
КонецЦикла;
Возврат СписокСообщений;
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Скажите в каком плане, он не срабатываете или не вызывается??Отладкой смотрели, может какая то ошибка? Процедура ОбработкаПроведения у вас срабатывает, в ней почему то странным образом появился третий параметр ОбработкаПроведения(Отказ, РежимПроведения,МассивДокументов)
Функция РеализацияТоваровИУслугНаСервере()//(МассивДокументов) // Вставить содержимое обработчика.
СписокСообщений = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст = " ВЫБРАТЬ
| ВложенныйЗапрос.Водители,
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Коэффициент,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.Сумма,
| ВложенныйЗапрос.ЦенаДоставки,
| ВложенныйЗапрос.ЦенаДоставкиЗаМКАД,
| ВложенныйЗапрос.Цена КАК Цена,
| ВложенныйЗапрос.Брак КАК Брак,
| ВложенныйЗапрос.Возврат как Возврат
|ИЗ
| (ВЫБРАТЬ
| ДоставкаТовары.Водители как Водители,
| ДоставкаТовары.Номенклатура КАК Номенклатура,
| ДоставкаТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ДоставкаТовары.Коэффициент КАК Коэффициент,
| СУММА(ДоставкаТовары.Количество) КАК Количество,
| СУММА(ДоставкаТовары.Сумма) КАК Сумма,
// | ДоставкаТовары.Маршруты.Водители КАК Водители,
| ДоставкаТовары.ЦенаДоставки Как ЦенаДоставки,
| ДоставкаТовары.ЦенаДоставкиЗаМКАД КАК ЦенаДоставкиЗаМКАД,
| ДоставкаТовары.Цена КАК Цена,
| ДоставкаТовары.Брак КАК Брак,
| ДоставкаТовары.Возврат как Возврат
// | ЕСТЬNULL(ЦеныПоставщиковСрезПоследних.ЦенаПоставщикаВал, 0) КАК Цена
| ИЗ
// | Документ.Доставка.Товары как ДоставкаТовары
| Документ.МаршрутПоездки.Маршруты КАК ДоставкаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
| ПО ДоставкаТовары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура.Номенклатура
| И ДоставкаТовары.Водители = ЦеныПоставщиковСрезПоследних.НастройкаЗагрузки.Контрагент
| ГДЕ
| ДоставкаТовары.Ссылка В(&Ссылка)
| И Брак = &Брак
| И Возврат = &Возврат
// | И ДоставкаТовары.Водители <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
// | И НЕ ДоставкаТовары.Номенклатура.Услуга
// |
| СГРУППИРОВАТЬ ПО
| ДоставкаТовары.ЦенаДоставки,
| ДоставкаТовары.ЦенаДоставкиЗаМКАД,
| ДоставкаТовары.Номенклатура,
| ДоставкаТовары.ЕдиницаИзмерения,
| ДоставкаТовары.Коэффициент,
| ДоставкаТовары.Водители,
| ДоставкаТовары.Цена,
| ДоставкаТовары.Брак,
| ДоставкаТовары.Возврат,
| ЕСТЬNULL(ЦеныПоставщиковСрезПоследних.ЦенаПоставщикаВал, 0)) КАК ВложенныйЗапрос
|ИТОГИ ПО
| Водители";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Брак",Ложь);
Запрос.УстановитьПараметр("Возврат",Ложь);
Результат = Запрос.Выполнить();
ВыборкаДокументов = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаДокументов.Следующий() Цикл
Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Док.Дата = ТекущаяДата();
Док.Контрагент = ВыборкаДокументов.Водители;
Док.Комментарий = "Сформирован по доставкам " + Док.Дата;
Док.Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяОрганизация2");
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(Док, глЗначениеПеременной("глТекущийПользователь"), Константы.ВалютаРегламентированногоУчета.Получить(), "Покупка");
ВыборкаТоваров = ВыборкаДокументов.Выбрать();
Пока ВыборкаТоваров.Следующий() Цикл
НоваяСтрока = Док.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаТоваров);
// Выполнить общие действия для всех документов при изменении номенклатуры.
// ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(НоваяСтрока, Док);
// НоваяСтрока.ЕдиницаИзмерения = ВыборкаТоваров.Номенклатура.ЕдиницаХраненияОстатков;
НоваяСтрока.Коэффициент = НоваяСтрока.ЕдиницаИзмерения.Коэффициент;
НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
// НоваяСтрока.Номенклатура = ВыборкаТоваров.Маршруты(Номенклатура);
// НоваяСтрока.ЦенаДоставки = ВыборкаТоваров.ЦенаДоставки;
КонецЦикла;
Если Док.Товары.Количество() > 0 Тогда
Док.Записать(РежимЗаписиДокумента.Запись);
СписокСообщений.Добавить("Создан документ: " + Док.Ссылка);
КонецЕсли;
КонецЦикла;
Возврат СписокСообщений;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот