0
Полька
29.11.04
✎
11:05
|
Ит=СоздатьОбъект("БухгалтерскиеИтоги"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура,Товар, 2); Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения, 2); Ит.ВыполнитьЗапрос(ТекущийДокумент(), , "41.1",,, 1,, "С"); Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1) = 1 Цикл Если Ит.СКД()<0 Тогда ТекстСообщения = "Нет товара "+Товар+" на складе."; глНеПроводить(Контекст, ТекстСообщения); Возврат; КонецЕсли; КонецЦикла; Если провожу документ - пролетает молча, но этот оператор не выполняется. Смотрю в отладчике Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура,Товар, 2) = Ошибка в выражении! Свихнулась - чего ж он хочет от меня? :(((((
|
|
1
IAm
29.11.04
✎
11:14
|
Во-первых для оптимизации Ит=СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура,Товар); Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения, 2); Ит.ВыполнитьЗапрос(ТекущийДокумент(), , "41.1",,, 1,, "С"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Если Ит.ПолучитьСубконто(1,,Товар) = 1 Тогда Если Ит.СКД() > 0 Тогда Продолжить; КонецЕсли; КонецЕсли; ТекстСообщения = "Нет товара "+Товар+" на складе."; глНеПроводить(Контекст, ТекстСообщения); Возврат; КонецЦикла; ============================================================ Во-вторых и этот код работать не будет, потому что: - если конфигурация типовая, то на местах хранения только количественный учет и Ит.СКД() всегда будет 0. - Не стоит конечная дата запроса =========================================== Имеет смысл мой код преобразовать Ит.ВыполнитьЗапрос(,ТекущийДокумент(),"41.1",,, 1); и не Ит.СКД() а Ит.СКД(3)
|
|
3
IAm
29.11.04
✎
11:16
|
То есть окончательный вариант Ит=СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура); Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения, 2); Ит.ВыполнитьЗапрос(,ТекущийДокумент(), "41.1",,, 1); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Если Ит.ПолучитьСубконто(1,,Товар) = 1 Тогда Если Ит.СКД(3) > 0 Тогда Продолжить; КонецЕсли; КонецЕсли; ТекстСообщения = "Нет товара "+Товар+" на складе."; глНеПроводить(Контекст, ТекстСообщения); Возврат; КонецЦикла;
|
|