Вход | Регистрация

Форумы на Кубань.Ру


1С:Предприятие ::

Метки:

Использовать субконто. Чего ж ОНО от меня хочет? :(((((((((((((

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



Список тем форума

Форум Территория 1С

Рекламное место пустует   Рекламное место пустует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует