Добрый вечер, как примерно должен выглядеть цикл, по которому происходят движения в регистре накопления и регистре сведений после проведения документа через запрос? Как нужно брать данные с результата запроса?
Процедура ОбработкаПроведения(Отказ, Режим)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПриходныйОрдерТовары.Ссылка.Склад,
| ПриходныйОрдерТовары.Номенклатура,
| ПриходныйОрдерТовары.Количество,
| ПриходныйОрдерТовары.Цена,
| ПриходныйОрдерТовары.Сумма,
| ПриходныйОрдерТовары.НаценкаВРознице
|ИЗ
| Документ.ПриходныйОрдер.Товары КАК ПриходныйОрдерТовары"
ПоказатьПо теме из базы знаний
- Формирование движений в регистрах и производительность системы 1С:Предприятие 8
- Метод формирования движений в типовых регистрах нетиповыми регистраторами
- Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ЕРП 2.4. Интеркампани, механизм формирования резервов
- Как сдать экзамен 1С:Специалист по платформе?
- Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Данные документа-регистратора не нужно брать через запрос - они уже в оперативной памяти в прикладном объекте. Все реквизиты и табличные части документа доступны в контексте процедуры ОбработкаПроведения.
Попробуйте для начала воспользоваться конструктором движений и посмотрите какой будет сформирован код для понимания.
Попробуйте для начала воспользоваться конструктором движений и посмотрите какой будет сформирован код для понимания.
(4)
как это должно выглядеть?
Процедура ОбработкаПроведения(Отказ, Режим)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПриходныйОрдерТовары.Ссылка.Склад,
| ПриходныйОрдерТовары.Номенклатура,
| ПриходныйОрдерТовары.Количество,
| ПриходныйОрдерТовары.Цена,
| ПриходныйОрдерТовары.Сумма,
| ПриходныйОрдерТовары.НаценкаВРознице
|ИЗ
| Документ.ПриходныйОрдер.Товары КАК ПриходныйОрдерТовары";
ЗаполнитьЗначенияСвойств(СебестоимостьТовара, ПриходныйОрдер, "Склад, Номенклатура, Цена, Количество");
Движения.СебестоимотьТовара.Записывать = Истина;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.СебестоимотьТовара.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Склад = Склад;
Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
Движение.Количество = ТекСтрокаТовары.Количество;
Движение.Себестоимость = ТекСтрокаТовары.Цена * 100 / ТекСтрокаТовары.НаценкаВРознице;
КонецЦикла;
Показатькак это должно выглядеть?
(6)Тут все категорически неверно. Вам нужно почитать про заполнение регистров и о самих регистрах. ЗаполнитьЗначенияСвойств тоже. Я смогу сделать и объяснить, но понимания у Вас, к сожалению, не будет. Поэтому сначала прочитайте как следует матчасть. Сразу ошибку укажу - не указан параметр Ссылка - у Вас будет заполнение по всем документам.
(8) На самом деле там собирается один большой запрос из кучи пакетов, и выполняется одной транзакцией чтения. А уже потом пакеты - в структуру, циклом по структуре - в регистры... И только запрос к самому документу обычно стоит особняком, чтобы потом все го реквизиты засунуть в качестве параметров в общий запрос-монстр...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот