|   |   | 
| 
 | УТ 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) 
 *скачала | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |