Имя: Пароль:
1C
 
Обработка проведения документа
0 Ychenik1c
 
22.08.16
12:56
Здравствуйте. Есть документ. Создал у него обработку проведения. Отсеял в запросе услуги, остались только товары. Документ делает движение по двум регистрам. Подскажите как можно сделать чтобы по одному из регистру все же и услуги делали движение?
1 Зая Бусечка
 
22.08.16
12:57
Отсеивать услуги на этапе формирования движений по первому регистру.

Или два запроса.
2 Рэйв
 
22.08.16
12:57
засеять услуги обратно
3 Ёпрст
 
22.08.16
12:58
(0) не делать запрос в обработке проведения. Только прямой.
4 Ychenik1c
 
22.08.16
13:02
(1) Как это можно реализовать? Тоже думал про такой вариант, а как сделать незнаю.
5 Зая Бусечка
 
22.08.16
13:03
(4) Я бы сделала это в коде, написав его руками...
6 Ёпрст
 
22.08.16
13:05
или пакетный запрос и смотреть результат по товарам и по услугам после его выполнения.
7 Ychenik1c
 
22.08.16
13:17
А возможно реализовать чтобы в запросе отсев услуг происходил, но затем в движение по одному из регистров все таки услуги попали?
8 Ёпрст
 
22.08.16
13:18
(7) да.
9 Lexey_
 
22.08.16
13:18
(7) всё в твоих руках
10 Горогуля
 
22.08.16
13:23
(7) услуги даже можно отсеивать потом
11 Ychenik1c
 
22.08.16
13:24
(8) У меня идет запрос в котором установлен параметр на отсев услуг. Затем проверка что количества хватает и началось движение по регистрам. Как я понимаю на стадии начала движения по нужному регистру можно написать определенный код после которого параметр не сработает?
12 Ychenik1c
 
22.08.16
13:25
Если можно пример кода как это может выглядить?
13 Горогуля
 
22.08.16
13:25
ещё найти строки в ТЧ можно
14 Ychenik1c
 
22.08.16
16:27
Оказалось все еще проще: движение по второму регистру вывел за запрос и все работает.
15 Горогуля
 
22.08.16
16:28
да не за что
16 Ychenik1c
 
22.08.16
16:40
Но будет еще один вопрос. Есть обработка заполнения документа реализации на основание счета:
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.Счет") Тогда
Контрагент = ДанныеЗаполнения.Контрагент;
Склад = ДанныеЗаполнения.Склад;
ДокументОснование = ДанныеЗаполнения.Ссылка;

Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Количество = ТекСтрокаТовары.Количество;
НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
НоваяСтрока.Сумма = ТекСтрокаТовары.Сумма;
НоваяСтрока.Цена = ТекСтрокаТовары.Цена;
КонецЦикла;
КонецЕсли;

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

Т.е. документ счет резервирует товар, а документ реализации созданный на основании его реализует. По одному документу счет может быть несколько реализаций но не больше чем он зарезервировал. И поэтому при создании на основание должно подставляться количество которое еще в резерве и больше чем в резерве есть. Контроль чтобы не давал больше реализовать сделал, а вот заполнение пока не идет.
17 Горогуля
 
22.08.16
16:43
давай свой вопрос
18 Ychenik1c
 
22.08.16
16:51
(17) Сейчас попробую в запросе получить еще все табличную часть документа счет и уже из запроса строить обработку заполнения.
19 Горогуля
 
22.08.16
16:52
не прерывай трансляцию
20 Ychenik1c
 
22.08.16
16:57
У меня не получается из запроса вставить данные в процедуру заполнения.
21 Горогуля
 
22.08.16
16:58
ничего! все через это проходили. не падай духом!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.