|
УТ 10.3.21.2, отбор по ФИФО, новичок в восьмерке | ☑ | ||
---|---|---|---|---|
0
olmi
19.04.14
✎
08:39
|
Нужно делать перемещение между организациями одной группы компаний через реализацию по ФИФО, по закупочным ценам.
В документе РеализацияТоваровУслуг пользователь должен выбрать товары и количество, а потом по кнопке эти строчки должны быть удалены и заменены на набор по ФИФО. Все приходы - в документах ПоступлениеТоваровУслуг. Написала пока простой код: ТЗТаблЧ = Новый ТаблицаЗначений; ТЗТаблЧ.Очистить(); ТЗТаблЧ = Товары.Выгрузить(); Товары.Очистить(); ТЗТаблЧРегистратора = Новый ТаблицаЗначений; к=0; Для Каждого Стр Из ТЗТаблЧ Цикл ОбработкаПрерыванияПользователя(); к=к+1; Состояние("Обрабатывается строка - " + (Строка(к))); ВыбКоличество=Стр.Количество; ЗапросПТУ = Новый Запрос; ЗапросПТУ.Текст = "ВЫБРАТЬ | ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, | ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения, | ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонОстКоличества, | ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор, | ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг, | ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор.Организация КАК Организация, | ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор.Проведен КАК РегистраторПроведен, | ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор.ОтметкаБухгалтера КАК ОтметкаБухгалтера |ИЗ | РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, , Регистратор, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты |ГДЕ | ПартииТоваровНаСкладахОстаткиИОбороты.Склад = &Склад | И ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = &Номенклатура | И ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор.Организация = &Организация | И ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор.Проведен = &Проведен | И ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор.ОтметкаБухгалтера = &ОтметкаБухгалтера | И ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток > 0"; ЗапросПТУ.УстановитьПараметр("Организация", Организация); ЗапросПТУ.УстановитьПараметр("Склад", Склад); ЗапросПТУ.УстановитьПараметр("Номенклатура", Стр.Номенклатура); ЗапросПТУ.УстановитьПараметр("Проведен", Истина); ЗапросПТУ.УстановитьПараметр("ОтметкаБухгалтера", Истина); ТЗЗапроса = ЗапросПТУ.Выполнить().Выгрузить(); Для Каждого СтрЗапроса Из ТЗЗапроса Цикл ОбработкаПрерыванияПользователя(); НоваяСтрока = Товары.Добавить(); Товар=СтрЗапроса.Номенклатура; НоваяСтрока.Номенклатура = Товар; //НоваяСтрока.ХарактеристикаНоменклатуры = СтрЗапроса.ХарактеристикаНоменклатуры; Выборка=Справочники.ЕдиницыИзмерения.Выбрать(,Товар); Пока Выборка.Следующий() Цикл ЕдиницаИзмерения=Выборка.Ссылка; Если ЕдиницаИзмерения.ЕдиницаПоКлассификатору=СтрЗапроса.БазоваяЕдиницаИзмерения Тогда Прервать; КонецЕсли; КонецЦикла; НоваяСтрока.ЕдиницаИзмерения = ЕдиницаИзмерения; //НоваяСтрока.ЕдиницаИзмеренияМест = ; НоваяСтрока.Коэффициент = 1; НоваяСтрока.СтавкаНДС = Товар.СтавкаНДС; Регистратор=СтрЗапроса.Регистратор; ТЗТаблЧРегистратора.Очистить(); ТЗТаблЧРегистратора = Регистратор.Товары.Выгрузить(); ТекСтр=ТЗТаблЧРегистратора.Найти(Товар,"Номенклатура"); НоваяСтрока.Цена = ТекСтр.Цена/ТекСтр.Коэффициент; НоваяСтрока.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.СоСклада; НоваяСтрока.Качество = Справочники.Качество.Новый; НоваяСтрока.КлючСтроки = УправлениеЗапасами.ПолучитьНовыйКлючСтроки(ЭтотОбъект); НоваяСтрока.КлючСвязи = 0; Если СтрЗапроса.КонОстКоличества < ВыбКоличество Тогда НоваяСтрока.Количество = СтрЗапроса.КонОстКоличества; НоваяСтрока.Сумма = СтрЗапроса.КонОстКоличества*ТекСтр.Цена; ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, ЭтотОбъект); ВыбКоличество = ВыбКоличество - СтрЗапроса.КонОстКоличества; //НоваяСтрока.КоличествоМест = СтрЗапроса.КоличествоМест; Иначе НоваяСтрока.Количество = ВыбКоличество; //НоваяСтрока.КоличествоМест = СтрЗапроса.КоличествоМест; НоваяСтрока.Сумма = ТекСтр.Цена*ВыбКоличество; ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, ЭтотОбъект); Прервать; КонецЕсли; КонецЦикла; КонецЦикла; По первому документу реализации все хорошо. Со второго выбирает, начиная с нужного Поступления, но с неверным СтрЗапроса.КонОстКоличества. Скажем, было 3 поступления - на 20,40,30 штук. Первой реализацией списываю 30 штук (20+10 сверху вниз, остаток 0,30,30), вторая должна списывать 40 штук, начиная со 2 поступления, т.е.30+10, а списывает 20+20. Вопросы:1. Что неправильно? 2. Как правильно написать запрос, чтобы сразу цеплять все? Буду благодарна за любую помощь!) |
|||
1
olmi
19.04.14
✎
08:41
|
+(0) Последовательность восстановлена до конца.
|
|||
2
Wobland
19.04.14
✎
08:44
|
без фото не взлетит
|
|||
3
Wobland
19.04.14
✎
08:45
|
1. цикл в запросе
2. пока лениво |
|||
4
kotletka
19.04.14
✎
08:47
|
запрос в цикле нехорошо... выбираешь запросом из тч номенклатуру, затем находишь по каждой партию... а вообще погугли "чистов spb" у него эти задачи разобраны с видео
|
|||
5
olmi
19.04.14
✎
08:56
|
(4)Спасибо, сейчас посмотрю Чистова). Когда-то ему экзамен по 7.7 сдавала).
|
|||
6
olmi
19.04.14
✎
08:58
|
(4)Только вот не соображу - это было в Москве, и он уже тогда был очень немолод - может, не тот)
|
|||
7
olmi
19.04.14
✎
08:59
|
(4)Судя по мощности - он, голубчик)))
|
|||
8
Wobland
19.04.14
✎
09:03
|
(6) тут возможны два варианта. или ты очень молода, или это не тот Чистов
|
|||
9
olmi
19.04.14
✎
09:04
|
(4)...А судя по фото - не он). Но курс обширный, еще раз большое спасибо, буду разбираться).
|
|||
10
olmi
19.04.14
✎
09:05
|
(8) Сэр, если можно, чуточку менее эмоционально). Это форум 1С, я не ошибаюсь?)
|
|||
11
Wobland
19.04.14
✎
09:08
|
(10) ошибаешся
|
|||
12
shuhard
19.04.14
✎
09:12
|
(10) нет конечно
|
|||
13
kotletka
19.04.14
✎
09:15
|
(10) последние два года это перепост жж и бложек всяких цветочков, еврейчиков, нытиков...1с мизер так что ... это миста детка
|
|||
14
olmi
19.04.14
✎
09:55
|
(11) - (13) Вы чуть опоздали, ребята, пятница была вчера. А советы я тут, на Мисте, получаю и сейчас, как и раньше, только от тех, кто хочет, в том числе, и думать и помогать, а не от тех, кто зашел сюда просто развлечься. Миста, она разная...
Сразу - если можно, оставьте мою ветку, если не хотите что-то говорить по делу. На Мисте есть где развлечься, а тут вам будет скучно, приветствуются только разговоры по делуА спам отвлекает и утомляет. Хорошего дня!) |
|||
15
olmi
19.04.14
✎
09:57
|
(13) А вот Вы мне очень помогли!) Сейчас все сказала, буду смотреть)
|
|||
16
olmi
19.04.14
✎
09:58
|
(13)
*скачала |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |