|
запрос по партиям | ☑ | ||
---|---|---|---|---|
0
Alexey_AA
14.12.12
✎
18:52
|
господа! почему данный запрос берет остатки следующего дня от проведения? как избавиться от этого?
"ВЫБРАТЬ | ПартииТоваровНаСкладахОстатки.СтатусПартии, | ПартииТоваровНаСкладахОстатки.КоличествоОстаток, | ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, | ПартииТоваровНаСкладахОстатки.ДокументОприходования |ИЗ | РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК ПартииТоваровНаСкладахОстатки |ГДЕ | ПартииТоваровНаСкладахОстатки.Склад = &Склад | И ПартииТоваровНаСкладахОстатки.Номенклатура = &Номенклатура"; |
|||
1
1C-band
14.12.12
✎
18:52
|
А период где вообще?
|
|||
2
Alexey_AA
14.12.12
✎
18:54
|
мля!!!! вот я торможу, это ж остатки :) надо домой ехать ужинать
|
|||
3
Alexey_AA
14.12.12
✎
20:04
|
и все же не могу разобраться, как выявить остаток на определенную дату?
|
|||
4
Lys
14.12.12
✎
20:24
|
открой для себя параметры виртуальных таблиц
|
|||
5
Alexey_AA
14.12.12
✎
20:36
|
(4) готов тебя расцеловать! уже два часа методом тыка перебираю все для меня казалось бы логичные и нелогичные решения, даже уже начал встроенный отчет ведомость по партиям на складах листать. и вот за минуту с твоей помощью управился!
давай я тебе на телефон хоть копеечку чтоли положу ? ;) |
|||
6
Alexey_AA
14.12.12
✎
20:36
|
и до этого еще на работе два часа... :(
|
|||
7
zak555
14.12.12
✎
20:37
|
убери где, есть параметры виртуальной табличцы
|
|||
8
Lys
14.12.12
✎
20:38
|
(5) Не надо меня целовать, пожалуйста. Я предпочитаю девушек)
Лучше мануалы читай. Их же и целуй, в следующий раз. Разрешаю. |
|||
9
Alexey_AA
14.12.12
✎
20:47
|
(8) ну я имел ввиду по-братски так сказать :)
|
|||
10
Alexey_AA
14.12.12
✎
20:49
|
да вот все думаю надо начать читать книгу, которая желтая в двух томах, да все времени нету :( понятное дело что сейчас потратив скорей всего сэкономлю в будущем много времени, но все кувырком в этой жизни получается :(
|
|||
11
Alexey_AA
15.12.12
✎
01:03
|
все бы ни чего, но мой запрос выбирает только из первой партии :(
"ВЫБРАТЬ | ПартииТоваровНаСкладахОстатки.СтатусПартии, | ПартииТоваровНаСкладахОстатки.КоличествоОстаток, | ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, | ПартииТоваровНаСкладахОстатки.ДокументОприходования |ИЗ | РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаДок, ) КАК ПартииТоваровНаСкладахОстатки |ГДЕ | ПартииТоваровНаСкладахОстатки.Склад = &Склад | И ПартииТоваровНаСкладахОстатки.Номенклатура = &Номенклатура"; |
|||
12
zak555
15.12.12
✎
01:07
|
(11)
1. не используй где, а используй РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаДок, Номенклатура = &Номенклатура и Склад = &Склад) КАК ПартииТоваровНаСкладахОстатки 2. напиши структуру регистра |
|||
13
Alexey_AA
15.12.12
✎
01:11
|
конфигурация АФФ, на базе УТ, сейчас попробую скриншот сделать
|
|||
14
Alexey_AA
15.12.12
✎
01:18
|
||||
15
zak555
15.12.12
✎
01:30
|
запрос из цикла убери
+ покажи, что в регистре |
|||
16
Alexey_AA
15.12.12
✎
01:43
|
в смысле показать? отчет по партиям?
а зачем убирать из цикла? мне надо каждую позицию проверить в партиях, если в одной партии не хватает для списания, цикл смотрит по следующей партии и так пока не добьет все количество, если остаток по партии меньше количества к списанию (с учетом списанных уже с партий) то делается отказ от проводки... |
|||
17
Alexey_AA
15.12.12
✎
01:49
|
вот такой код. вроде теперь все правильно работает, сейчас попробую еще что б с нескольких партий брался товар.
Процедура ОбработкаПроведения(Отказ, РежимПроведения) //движениеПартииТоваровНаСкладах(); /////////////////////////////////////// // движения по партиям Движения.ПартииТоваровНаСкладах.Записывать = Истина; Движения.ПартииТоваровНаСкладах.Очистить(); Для Каждого ТекСтрокаМатериалы Из Материалы Цикл //обходим строки материалов Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПартииТоваровНаСкладахОстатки.СтатусПартии, | ПартииТоваровНаСкладахОстатки.КоличествоОстаток, | ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, | ПартииТоваровНаСкладахОстатки.ДокументОприходования |ИЗ | РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаДок, Номенклатура = &Номенклатура и Склад = &Склад) КАК ПартииТоваровНаСкладахОстатки "; Запрос.УстановитьПараметр("Номенклатура", ТекСтрокаМатериалы.Наименование); Запрос.УстановитьПараметр("Склад", справочники.Склады.НайтиПоНаименованию( Сотрудник.Наименование)); Запрос.УстановитьПараметр("ДатаДок", Дата); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); колЗаписей=ВыборкаДетальныеЗаписи.Количество(); количествоКСписанию=ТекСтрокаМатериалы.КолОП+ТекСтрокаМатериалы.КолДоп+ТекСтрокаМатериалы.КолСерв; счетчик=0; если колЗаписей=0 тогда Сообщить("Недостаточно для списания """+ТекСтрокаМатериалы.Наименование+ """ на складе "+Сотрудник.Наименование+"! Проводка отменена!"); Отказ=истина; Возврат; КонецЕсли; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //обходим выбранные записи регистров //делаем запись в регистр счетчик=счетчик+1; Движение = Движения.ПартииТоваровНаСкладах.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Склад = справочники.Склады.НайтиПоНаименованию( Сотрудник.Наименование); Движение.ДокументОприходования=ВыборкаДетальныеЗаписи.ДокументОприходования; движение.Номенклатура=ТекСтрокаМатериалы.Наименование; Движение.Качество=Справочники.Качество.Новый; если количествоКСписанию<=ВыборкаДетальныеЗаписи.КоличествоОстаток тогда Движение.ДокументОприходования=ВыборкаДетальныеЗаписи.ДокументОприходования; Движение.Количество=количествоКСписанию ; Движение.СтатусПартии=ВыборкаДетальныеЗаписи.СтатусПартии; Движение.Стоимость=ВыборкаДетальныеЗаписи.СтоимостьОстаток; Прервать; иначеесли (количествоКСписанию> ВыборкаДетальныеЗаписи.КоличествоОстаток) и (счетчик<колЗаписей) тогда Движение.ДокументОприходования=ВыборкаДетальныеЗаписи.ДокументОприходования; Движение.Количество=ВыборкаДетальныеЗаписи.КоличествоОстаток ; Движение.СтатусПартии=ВыборкаДетальныеЗаписи.СтатусПартии; Движение.Стоимость=ВыборкаДетальныеЗаписи.СтоимостьОстаток; количествоКСписанию=количествоКСписанию-ВыборкаДетальныеЗаписи.КоличествоОстаток; иначеесли счетчик=колЗаписей тогда Движение.ДокументОприходования=ВыборкаДетальныеЗаписи.ДокументОприходования; если Движение.Количество<ВыборкаДетальныеЗаписи.КоличествоОстаток тогда Сообщить("Недостаточно для списания """+ТекСтрокаМатериалы.Наименование+ """ на складе "+Сотрудник.Наименование+"! Проводка отменена!"); Отказ=истина; Возврат; КонецЕсли; Движение.Количество=ВыборкаДетальныеЗаписи.КоличествоОстаток ; Движение.СтатусПартии=ВыборкаДетальныеЗаписи.СтатусПартии; Движение.Стоимость=ВыборкаДетальныеЗаписи.СтоимостьОстаток; количествоКСписанию=количествоКСписанию-ВыборкаДетальныеЗаписи.КоличествоОстаток; иначеесли (счетчик>колЗаписей) тогда Сообщить("Недостаточно для списания """+ТекСтрокаМатериалы.Наименование+ """ на складе "+Сотрудник.Наименование+"! Проводка отменена!"); Отказ=истина; Возврат; КонецЕсли; КонецЦикла; //конец обхода выбранных записей регистров КонецЦикла; //конец обхода строк материалов /////////////////////////////////////////////////// /// конец движений по партиям движениеТоварыНаСкладах(); движениеРеализованныеТовары(); движениеТоварыОрганизаций(); |
|||
18
nunzio
15.12.12
✎
01:53
|
(17) см (15)
|
|||
19
Alexey_AA
15.12.12
✎
02:05
|
(18) не понимаю :( я новичок пока, не весь сленг еще впитал
спасибо всем кто помогал, теперь работает как надо! что бы я без Вас делал даже и не знаю. пусть удача сопровождает вас везде! |
|||
20
zak555
15.12.12
✎
12:55
|
(16)
1. скрин РН своего 2. сначла пиши движения, а потом смотри на отрицательные остатки |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |