Имя: Пароль:
1C
1C 7.7
v7: Помогите с запросом
,
0 Tata_059
 
27.09.19
13:05
7.7 очень давно не занималась.
Нужно найти себестоимость товара в проводках. Документ отражающее это "Операция".
я делаю запрос, задаю дату и товар, но запрос пустой.
Подскажите что еще можно подкорректировать.

Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(УслугиКомиссииБанка)
    |с ВыбНачПериода по ВыбКонПериода;
    |Без итогов;
    |Сч = Операция.Счет;
    |КорСч = Операция.КорСчет;
    |Сумма = Операция.Сумма;
    |СодержаниеПроводки = Операция.СодержаниеПроводки;
    |Количество = Операция.Количество;
    |Товар = Операция.КорСубконто.Номенклатура;
    |ДатаОперации = Операция.ДатаОперации;
    |СодержаниеОперации = Операция.Содержание;
    |СуммаОперации = Операция.СуммаОперации;
    |Функция СуммаКорДО = КорДО(Сумма);
    |Функция КоличествоКорДО = КорДО(Количество);
    |Функция СуммаКорКО = КорКО(Сумма);
    |Группировка Товар без групп;
    |Группировка Сумма;
    |Группировка СодержаниеОперации;
    |Группировка СуммаОперации;
    |Группировка СтрокаДокумента;
    |Условие(Сч=СчетПоКоду(""90.2.1""));
    |Условие(КорСч=СчетПоКоду(""41.1""));
    |Условие(ДатаОперации = ВыбДатаОперации);
    |Условие(Товар = ВыбТовар);
    |Условие(СодержаниеПроводки = ""Себестоимость товара"");
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    ТЗ= СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТЗ,,0);
    тз.ВыбратьСтроки();
    Пока тз.ПолучитьСтроку() = 1 Цикл
        Сообщить(тз.Товар);
    КонецЦикла;
1 Chum
 
27.09.19
13:09
(0) ухйоп...

БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Номенклатура);
БИ.ВыполнитьЗапрос( см. в СП );

БИ.ВыбратьСубконто();
Пока БИ.ПолучитьСубконто()=1 Цикл

вот тут всякие БИ.ДО, КО, КорДО и т.д. (см СП)

КонецЦикла;
2 johnnik
 
27.09.19
13:12
Может в содержании проводки совсем не такой текст как в условии запроса и условие честно фильтрует все неподходящее? Да и вообще условий куча: дата, конкретный выбранный товар. Мало ли какие выб(объект) не подпадает под условия
3 Tata_059
 
27.09.19
13:14
(2)если убрать "  |Условие(СодержаниеПроводки = ""Себестоимость товара""); " тоже не работает
4 johnnik
 
27.09.19
13:22
(3) Я в таких случаях делаю поэтапно:
1. Убираю ВСЕ условия и добавляю по одному
2. Выгружаю в ТЗ, созданную на форме отчета или обработки, чтобы визуально видеть результат запроса. Если работает, тогда уже меняю ТЗ на программный объект
5 uno-group
 
27.09.19
14:08
а зачем двойные кавычки
6 mikecool
 
27.09.19
14:11
(1) соглашусь с товарищем
раньше в приличном обществе за обращение к проводкам через чорный запрос били палками
7 Tata_059
 
27.09.19
14:12
(6) ну можно и по способу (1) , я 7.7 в глаза много лет не видела =) я из 1с 8 буду делать запрос в 7.7
8 Chum
 
27.09.19
14:19
(7) ухйоп...

Ты в ГМ 7-ки пропиши экспортную функцию для выполнения запроса к бухитогам. Потом из 8-ки ее вызывай. Иначе вроде не получится.

(6) верно, да и вообще 7-ка требует гораздо больших знаний в программировании
9 zenon46
 
27.09.19
15:11
(8) это шутка такая?
"да и вообще 7-ка требует гораздо больших знаний в программировании" - ?
10 opus70
 
27.09.19
16:06
(9) вы шутите насчет больших знаний наверное 7.7 можно выучить на очень хорошем уровне за 3 месяца а 8-ке три месяца это не о чем даже основ не освоишь
11 Chum
 
27.09.19
16:14
(9)(10) нет, не шучу. Сделайте в 7-ке, например, фильтр, который можно накладывать на произвольные колонки в таблице значений без использования сторонних компонент.
12 Tata_059
 
27.09.19
16:51
Процедура Сформировать()
    БИ = СоздатьОбъект("БухгалтерскиеИтоги");
    БИ.ИспользоватьСубконто(ВидыСубконто.Номенклатура,ВыбНоменклатура,2,0);
    БИ.ВыполнитьЗапрос(ДатаОперации,ДатаОперации,"90.2.1","41.1",,2,,"СК");
    
    БИ.ВыбратьСубконто(,1);
    Пока БИ.ПолучитьСубконто()=1 Цикл  
        Сообщить( БИ.Субконто(1));
        Сообщить(  БИ.ДО("С"));
        Сообщить(  БИ.КО("С"));
    КонецЦикла;
      


КонецПроцедуры

что здесь не хватает, в цикл не заходит
13 Builder
 
27.09.19
17:28
У вас на счете 90.2.1 есть субконто "Номенклатура"? Сомневаюсь.
Попробуйте ИспользоватьКорСубконто, товары то на 41 счету.
14 Chum
 
27.09.19
17:33
ИспользоватьКорСубконто()
ВыбратьКорСубконто()
ПолучитьКорСубконто()

вроде так было
15 Chum
 
27.09.19
17:34
Или счета поменять местами
16 opus70
 
27.09.19
18:04
(11) ну в 99% такое обычным пользователя 7.7 не нужно а тем кому нужно юзают 1c++ и formex и да там уже нужно знать очень много тонкостей
Независимо от того, куда вы едете — это в гору и против ветра!