|
Перемещение товаров по ордеру | ☑ | ||
---|---|---|---|---|
0
kojinandrej
25.11.11
✎
14:29
|
Люди помогите оптимизировать. Есть код:
СкладОтбор = УправлениеПользователями.ОпределитьТекущегоПользователя(); Если ЭтотОбъект.ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.ТоварыПродукцияПоОрдерам и Не РольДоступна("Ялта") и ЭтотОбъект.Ответственный = СкладОтбор Тогда Ответ = Вопрос("Создать Расходный Ордер на товары?", РежимДиалогаВопрос.ДаНет); Если Ответ = КодВозвратаДиалога.Да Тогда ОбъектРасхода = Документы.РасходныйОрдерНаТовары.СоздатьДокумент(); ОбъектРасхода.ВидОперации = Перечисления.ВидыОперацийРасходныйОрдер.Перемещение; ОбъектРасхода.ДокументПередачи = ЭтотОбъект.Ссылка; ОбъектРасхода.Склад = ЭтотОбъект.СкладОтправитель; ФормаРасхода = ОбъектРасхода.ПолучитьФорму(); ФормаРасхода.ЗаполнитьТовары(Истина); ФормаРасхода.Открыть(); ФормаРасхода.ЗаписатьВФорме(РежимЗаписиДокумента.Проведение); ОбъектРасхода.Движения.Записать(); ФормаРасхода.Закрыть(); КонецЕсли; Ответ = Вопрос ("Выполнить переоценку товаров?",РежимДиалогаВопрос.ДаНет); Если Ответ=КодВозвратаДиалога.Да Тогда ОбъектПереоценка = Документы.ПереоценкаТоваровВРознице.СоздатьДокумент(); ОбъектПереоценка.Заполнить(ЭтотОбъект.Ссылка); ФормаПереоценка = ОбъектПереоценка.ПолучитьФорму(); ФормаПереоценка.ПараметрОснование = ЭтотОбъект.Ссылка; ФормаПереоценка.Открыть(); КонецЕсли; КонецЕсли; Как создать условие проверки что если по этому перемещению создан расходный ордер, то спрашивать про ордер не надо |
|||
1
viknik
25.11.11
✎
15:03
|
1-й вариант: проверить, есть ли документ РасходныйОрдер с ДокументПередачи=ПеремещениюТоваров.
Но при этом не гарантируется, что имеющийся расходный ордер закрыл все кол-во по перемещению. Поэтому: 2-й вариант: Проверить остатки в регистре ТоварыКПередачеСоСкадов по ДокументПередачи=Перемещение. Если остатки равны 0, то расходный ордер не нужен. |
|||
2
kojinandrej
25.11.11
✎
15:10
|
А Если товар не один на складе, а есть еще в остатках!
|
|||
3
viknik
25.11.11
✎
15:11
|
Посмотри, какие данные заполняются в регистр ТоварыКПередачеСоСкладов, тогда все вопросы отпадут.
|
|||
4
kojinandrej
25.11.11
✎
15:29
|
Хорошо. Есть ДоментПередачи. Как написать условие проверки если в этом списке нет этого перемещения тогда создавать расходный ордер если есть тогда не создавать. если написать простой запрос
Запрос = Новый Запрос; Запрос.Текст ="Выбрать |ДокументПередачи |Из |РегистрНакопления.ТоварыКПередачеСоСкладов |Сгруппировать по | ДокументПередачи"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если ЭтотОбъект.Ссылка <> Выборка.ДокументПередачи Тогда Тогда он на каждый документ передачи не равный текущему будет создавать расходный ордер |
|||
5
viknik
25.11.11
✎
15:38
|
Ну примерно так:
Выбрать * ИЗ РегистрНакопления.ТоварыКПередачеСоСкладов.Остаки ГДЕ ДокументПередачи=&документПередачи Выборка = Запрос.Выполнить().Выгрузить(); Если Выборка.Количество() > 0 Тогда СоздатьРасходныйОрдер(); КонецЕсли; |
|||
6
kojinandrej
25.11.11
✎
15:43
|
{Документ.ПеремещениеТоваров.Форма.ФормаДокумента.Форма(1585)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выгрузить(); по причине: по причине: {(4, 1)}: Таблица не найдена "РегистрНакопления.ТоварыКПередачеСоСкладов.Остаки" <<?>>РегистрНакопления.ТоварыКПередачеСоСкладов.Остаки |
|||
7
viknik
25.11.11
✎
15:44
|
Остатки
|
|||
8
kojinandrej
25.11.11
✎
15:45
|
{Документ.ПеремещениеТоваров.Форма.ФормаДокумента.Форма(1585)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выгрузить(); по причине: по причине: {(6, 21)}: Не задано значение параметра "документПередачи" ДокументПередачи=<<?>>&документПередачи |
|||
9
kojinandrej
25.11.11
✎
15:49
|
Спасибо за идею апрос.Текст ="Выбрать
|* |Из |РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки |ГДЕ | ДокументПередачи=&документПередачи"; Запрос.Параметры.Вставить("ДокументПередачи",ЭтотОбъект.Ссылка); Выборка = Запрос.Выполнить().Выгрузить(); Если Выборка.Количество() > 0 Тогда вот так должно быть |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |