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

Работа с документами

Автор Рус25, 04 апр 2015, 15:50

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

Рус25

Добрый день.
Есть два документа: ЗаказыПокупателя и РеализацияТоваровИУслуг. Документ РеализацияТоваровИУслуг создаётся на основании документа ЗаказыПокупателя.
задача состоит в следующем: доработать код, созданный с помощью конструктора, таким образом, чтобы при создании документа реализации товаров на основании заказа, в документ попадали не все товары и услуги из заказа, а только те, которые ещё не отгружены по данному заказу.
Задачу нужно решить без использования регистров накопления и регистров сведений и желательно без запроса.

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
// Заполнение шапки
КонтактноеЛицо = ДанныеЗаполнения.КонтактноеЛицо;
Контрагенты = ДанныеЗаполнения.Контрагенты;
ОбщаяСумма = ДанныеЗаполнения.ОбщаяСумма;
ИдентификаторЗаказа = ДанныеЗаполнения.Ссылка;
Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл
НоваяСтрока = Товары.Добавить();
НоваяСтрока.ЕдиницаИзмерения = ТекСтрокаТовары.ЕдиницаИзмерения;
НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
НоваяСтрока.Цена = ТекСтрокаТовары.Цена;
КонецЦикла;
Для Каждого ТекСтрокаУслуги Из ДанныеЗаполнения.Услуги Цикл
НоваяСтрока = Услуги.Добавить();
НоваяСтрока.Номенклатура = ТекСтрокаУслуги.Номенклатура;
НоваяСтрока.Сумма = ТекСтрокаУслуги.Сумма;
КонецЦикла;
КонецЕсли;

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

cska-fanat-kz

делаем выборку проведенных реализаций (через Выбрать()) с отбором по документу основание - заказу.
собираем из этих реализаций табличку отгруженной номенклатуры.
далее заполняя ТЧ Товары текущей реализации исключаем номенклатуру из вышеупомянутой таблицы.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Рус25

Спасибо.
а кодом можешь помочь?)

cska-fanat-kz

т.е. не просто разжевать а еще и в рот положить? :trhregerhg:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Dethmontt

Цитата: Рус25 от 04 апр 2015, 15:50Задачу нужно решить без использования регистров накопления и регистров сведений и желательно без запроса.

Афигеть условие!!! Как определять товар который еще не был отгружен?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

cska-fanat-kz

Цитата: Dethmontt от 05 апр 2015, 23:46Как определять товар который еще не был отгружен?

выборка документов с помощью Выбрать()...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Luzer1C

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

КонецЕсли;       
КонецЦикла;
Халамбалам.

cska-fanat-kz

Цитата: Luzer1C от 06 апр 2015, 08:07СтрПоиска = ТЧОтгруженныеТовары("Номенклатура", ТекСтрокаТовары.Номенклатура)

вот из вис?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Dethmontt

Цитата: cska-fanat-kz от 06 апр 2015, 06:13выборка документов с помощью Выбрать()...
Т.е. один и тот же товар нельзя отгрузить дважды?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

cska-fanat-kz

Цитата: Dethmontt от 06 апр 2015, 10:08
Цитата: cska-fanat-kz от 06 апр 2015, 06:13выборка документов с помощью Выбрать()...
Т.е. один и тот же товар нельзя отгрузить дважды?

ну да, как то так
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск