Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

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

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

1C8.1Бух Запрос бухгалтерский (ошибка)

Vakham
читатель
офлайн
Дата регистрации: 03.03.2010
Сообщений: 5
Пост №1
 
03.03.2010 13:45

"Здравствуйте. <br>Дано: 1С:Предприятие 8.1 (8.1.9.57) "Бухгалтерия" редакция 1.6 (1.6.15.6) (пока что не ломаная, но прогресс неизбежен)<br>Требуется: запросом выбрать остатки товара на 41-м счету.<br>Паяльной лампой наваял:<br> ЗапросОстаткиТовара=Новый Запрос("ВЫБРАТЬ<br> | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,<br> | СУММА(ХозрасчетныйОстатки.СуммаОборотДТ) КАК ОборотДТ,<br> | СУММА(ХозрасчетныйОстатки.СуммаКонечныйОстатокДт) КАК СуммаКонечныйОстатокДт,<br> | СУММА(ХозрасчетныйОстатки.СуммаКонечныйОстатокКт) КАК СуммаКонечныйОстатокКт,<br> | ХозрасчетныйОстатки.Счет КАК Счет<br> |ИЗ<br> | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода,&КонецПериода) КАК ХозрасчетныйОстатки<br> |ГДЕ<br> | Счет=41.01<br> |СГРУППИРОВАТЬ ПО<br> | Счет,<br> | ХозрасчетныйОстатки.Субконто1,<br> | ХозрасчетныйОстатки.СуммаКонечныйОстатокДт,<br> | ХозрасчетныйОстатки.СуммаКонечныйОстатокКт,<br> | ХозрасчетныйОстатки.СуммаОборотДТ<br> |");<br> ЗапросОстаткиТовара.УстановитьПараметр("НачалоПериода",ДатаНачала);<br> ЗапросОстаткиТовара.УстановитьПараметр("КонецПериода",ДатаКонца);<br> ОстаткиТовара=ЗапросОстаткиТовара.Выполнить();<br> <br> Если ОстаткиТовара.Пустой()=Ложь Тогда<br> Сообщить("!");<br> ОстаткиТовара.Выбрать();<br> Пока ОстаткиТовара.Следующий() Цикл<br> Сообщить("!");<br> КонецЦикла;<br> КонецЕсли;<br><br>1С не дает никаких результатов.<br>Вопрос: Что делать? Кто виноват сам знаю, давеча в зеркале видел."

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №2
 
03.03.2010 14:12

"Ошибка в строке <br>| Счет=41.01<br>Варианта 2:<br>1. Возможно требуется уточнить код<br>| Счет.Код=""""41.01""""<br>2. <br>| Счет.Код=&Счет<br>ЗапросОстаткиТовара.УстановитьПараметр("Счет",...); //Либо передать выбранный в форме, либо найти по коду, либо ..."

Tanya
читатель
офлайн
Дата регистрации: 03.12.2001
Сообщений: 8411
Пост №3
 
03.03.2010 14:14

> ГДЕ<br>> Счет=41.01<br><br>И где вы видели чтобы так условие задавалось.<br>Совет. поставьте условие в виртуальной таблице, запрос будет работает быстрее. <br><br>> Паяльной лампой наваял:<br>Лучше конструктором запросов.<br><br>

Vakham
читатель
офлайн
Дата регистрации: 03.03.2010
Сообщений: 5
Пост №4
 
03.03.2010 14:24

"Вариант 1. не прокатил, а вариант<br>| Счет.Код=&Счет<br>ЗапросОстаткиТовара.УстановитьПараметр("Счет",...);<br>что-то получает, так как срабатывает условие Если ОстаткиТовара.Пустой()=Ложь Тогда<br><br>Но вылетает при ошибке в строке Пока ОстаткиТовара.Следующий() Цикл<br>Говорит, что "Метод объекта не обнаружен (Следующий)"<br>Что сделал не так?"

Tanya
читатель
офлайн
Дата регистрации: 03.12.2001
Сообщений: 8411
Пост №5
 
03.03.2010 14:31

> Но вылетает при ошибке в строке Пока ОстаткиТовара.Следующий() Цикл<br>> Говорит, что "Метод объекта не обнаружен (Следующий)"<br>> Что сделал не так?<br><br>Сначала нужно выбрать<br>Метод следующий() у объекта выборки.<br>Вы хоть синтаксис-помощник посмотрите.<br>

Vakham
читатель
офлайн
Дата регистрации: 03.03.2010
Сообщений: 5
Пост №6
 
03.03.2010 14:36

"Обновленный код:<br> ЗапросОстаткиТовара=Новый Запрос("ВЫБРАТЬ<br> | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,<br> | СУММА(ХозрасчетныйОстатки.СуммаОборотДТ) КАК ОборотДТ,<br> | СУММА(ХозрасчетныйОстатки.СуммаКонечныйОстатокДт) КАК СуммаКонечныйОстатокДт,<br> | СУММА(ХозрасчетныйОстатки.СуммаКонечныйОстатокКт) КАК СуммаКонечныйОстатокКт,<br> | ХозрасчетныйОстатки.Счет КАК Счет<br> |ИЗ<br> | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода,&КонецПериода) КАК ХозрасчетныйОстатки<br> //|ГДЕ<br> //| Счет=""""41.01""""<br> |СГРУППИРОВАТЬ ПО<br> | Счет,<br> | ХозрасчетныйОстатки.Субконто1,<br> | ХозрасчетныйОстатки.СуммаКонечныйОстатокДт,<br> | ХозрасчетныйОстатки.СуммаКонечныйОстатокКт,<br> | ХозрасчетныйОстатки.СуммаОборотДТ<br> |");<br> ЗапросОстаткиТовара.УстановитьПараметр("НачалоПериода",ДатаНачала);<br> ЗапросОстаткиТовара.УстановитьПараметр("КонецПериода",ДатаКонца);<br> ЗапросОстаткиТовара.УстановитьПараметр("Счет",СчетОстатков);<br> ОстаткиТовара=ЗапросОстаткиТовара.Выполнить();<br> <br> Если ОстаткиТовара.Пустой()=Ложь Тогда<br> Сообщить("!");<br> ОстаткиТовара.Выбрать();//***** ВРОДЕ КАК ВЫБРАЛ<br> Пока ОстаткиТовара.Следующий() Цикл<br> Сообщить("!");<br> КонецЦикла;<br> КонецЕсли;<br><br>Но выдает ошибку в цикле."

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №7
 
03.03.2010 14:38

"Так далеко я не смотрел:<br>лВыборка = ОстаткиТовара.Выбрать();<br>Пока лВыборка.Следующий() Цикл<br>...<br><br>У результата запроса нет Следующего."

Vakham
читатель
офлайн
Дата регистрации: 03.03.2010
Сообщений: 5
Пост №8
 
03.03.2010 14:44

Вот и верь потом учебникам... И что ж делать? На 41-м остатки есть.<br>Мысль... у регистра измерение "Организация" и "Валюта", которые я в запросе не указывал. В этом может быть косяк?<br><br>p.s. Извиняюсь за глупые вопросы, ибо это мой первый запрос на 8.1

Vakham
читатель
офлайн
Дата регистрации: 03.03.2010
Сообщений: 5
Пост №9
 
03.03.2010 15:31

"Догнал. Массивы - сила. <br><br>МассивОстаткиТовара=ОстаткиТовара.Выгрузить();<br>Для Каждого СтрокаИзМассива Из МассивОстаткиТовара Цикл<br> Сообщить(Строка(СтрокаИзМассива["Номенклатура"])+" "+Строка(СтрокаИзМассива["СуммаКонечныйОстатокДт"]));<br>КонецЦикла;<br><br>Непонимаю только, почему ни в одном учебнике нет нормального примера. Очень съэкономило бы время и нервы."

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №10
 
03.03.2010 17:13

"> Догнал. Массивы - сила. <br>> <br>> МассивОстаткиТовара=ОстаткиТовара.Выгрузить();<br>> Для Каждого СтрокаИзМассива Из МассивОстаткиТовара Цикл<br>> Сообщить(Строка(СтрокаИзМассива["Номенклатура"])+" "+Строка(СтрокаИзМассива["СуммаКонечныйОстатокДт"]));<br>> КонецЦикла;<br>> <br>Если ОстаткиТовара - это результат запроса (Запрос.Выполнить()), то Выгрузить это не Масиив, а ТаблицаЗначений :)<br>А Выборку я и сам не люблю, хотя она должна быть быстрее.<br><br>> Сообщить(Строка(СтрокаИзМассива["Номенклатура"])+" "+Строка(СтрокаИзМассива["СуммаКонечныйОстатокДт"]));<br>Можно и так написать:<br>Сообщить(Строка(СтрокаИзМассива.Номенклатура)+" "+Строка(СтрокаИзМассива.СуммаКонечныйОстатокДт));"

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация
Предложения партнеров
Обучение пользователей продуктов 1С