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