Как выбрать все виды документов

  • Автор темы Ramzay
  • Дата начала
R

Ramzay

#1
Мы используем конфигурацию "Зарплата и кадры" 7.7. В ней есть "Журналы документов", внутри которого есть журнал "Полный". Мне нужно выяснить все виды документов, которые мы использовали за все время.

Пробую написать запрос:

Код:
ДокИмя = ЖурналДокументов.Полный.Документ.Индентификатор;
//ДокИмя = ЖурналыДокументов.Полный.Документ.Индентификатор; // Пробовал 
//				 написать так (как определено в конфикураторе) - таже песня.
Группировка ДокИмя;
Ругается так: Неверно заданный путь 'ЖурналДокументов'
Подскажите, как решить задачу.

Ps. Подобным образом я обращался к журналу расчетов зарплата. В конфигураторе журнал расчетов определен как "Журналы расчетов". Однако, когда я писал запрос, и руководстве об этом написано, нужно писать "ЖурналРасчетов". В руководстве о том как обращаться к журналу документов я не нашел. Поэтому написал в запросе по аналогии "ЖурналДокументов", но похоже это не правильно. А как правильно?
 
N

NomadSoul

#2
Ramzay, если Вам надо выбрать все документы, то проанализируйте следующий код, он как раз это делает:

Процедура Сформировать()
Док = СоздатьОбъект("Документ");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Цикл
Сообщить(Док.Вид()+" "+Док.НомерДок+" "+Док.ДатаДок);
КонецЦикла;
КонецПроцедуры
 
R

Ramzay

#3
Спасибо. Несколько изменив код:

Процедура ВыпКод()
ДокСпис=СоздатьОбъект("СписокЗначений");
Док = СоздатьОбъект("Документ");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Цикл
Если ДокСпис.НайтиЗначение(Док.Вид())=0 тогда
ДокСпис.ДобавитьЗначение(Док.Вид());
Сообщить(Док.Вид());
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Я получил то, что хотел.

ПриказОПриеме
Табель
ВводЛюбогоРасчета
ПлатежнаяВедомость
ПриказПоОтпуску
РасчетСредней
РасчетЗаработнойПлаты
НачалоМесяца
ПриказОКадровомПеремещении
Пересчет
ПриказОбУвольнении
РасчетНалогов

Это работа разовая и я почти удовлетворен результатом. А можно ли эту задачу решить через запрос?
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#4
Можно и через запрос. Вот только - зачем? Черный запрос в 7.7 - зло!
 
N

NomadSoul

#5
KiR, не согласен. Иногда (особенно при SQL базе) правильно написанный запрос работает в разы быстрее чем цикл.
 
R

Ramzay

#6
Когда мы работаем с циклом, мы работаем с кажлой записью в отдельности. Когда мы работаем с запросом, мы работаем с набором записей. Работать с набором записей лучше по нескольким причинам.

Более наглядный, более понятный и более короткий код, Более высокая переносимость кода и т.д..

Вообще весь мир идет по пути работы с набором записей. А работа через цикл это 60-е годы прошлого века.

Вопрос в том, насколько позволяет работать с набором записей 1с?
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#7
вот я ж и говорю - черный запрос, реалиованный в 1С7.7 (без ВК) - лучше использовать только в самом крайнем случае
 
N

NomadSoul

#8
В 7.7 надо понимать где лучше использовать цикл, а где запрос. При построении отчетов лучше использовать правильно составленные запросы.
 
R

Ramzay

#9
KiR, я извиняюсь, а что такое ВК? И что такое "черный" запрос"?
 

vbs

Well-known member
18.02.2007
1 708
1
#10
Когда мы работаем с циклом, мы работаем с кажлой записью в отдельности. Когда мы работаем с запросом, мы работаем с набором записей. Работать с набором записей лучше по нескольким причинам.

Более наглядный, более понятный и более короткий код, Более высокая переносимость кода и т.д..

Вообще весь мир идет по пути работы с набором записей. А работа через цикл это 60-е годы прошлого века.

Вопрос в том, насколько позволяет работать с набором записей 1с?
У цикла есть, по крайней мере, одно неоспоримое преимущество - в случае возможных ошибок, всегда легко выяснить, в чем проблема.
Если же запрос работает не так - умрешь докапываться.
А что касается скорости - при нынешнем уровне железа подобные сравнения делаются уже где-то чуть ли не на "наноуровне"
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#11
ВК - внешний компонент. А черный запрос - это запрос, реализованный в 1С7.7 (Объект Запрос) к примеру в восьмерке я сам в основном тока запросами и пользуюсь, а в семерке зачастую все равно прицдется циклом обход результатов делать.
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#12
У цикла есть, по крайней мере, одно неоспоримое преимущество
...зацикливаться!
Если же запрос работает не так - умрешь докапываться.
Есть задачи, которые без запроса вообще решить не реально. Пример нужен? :)
 

vbs

Well-known member
18.02.2007
1 708
1
#13
Есть задачи, которые без запроса вообще решить не реально. Пример нужен?
Можно подумать, что я такой консерватор, что запросами не пользуюсь !
Но довольно часто употр*цензура*ю и циклы. При этом с годами научился все-таки, чтобы они не повисали. :rolleyes:
 

puh14

Well-known member
11.07.2008
1 412
0
#14
Запросы это сила. Сравнивал вывод в ТЗ 170 тысяч позиций номенклатуры ( в 7.7). Через циклы - около 30 мин, запрос языком 1с - 10 минут, прямым запросом - 15 секунд.
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#15
Запросы это сила. Сравнивал вывод в ТЗ 170 тысяч позиций номенклатуры ( в 7.7). Через циклы - около 30 мин, запрос языком 1с - 10 минут, прямым запросом - 15 секунд.
ну может при таких объемах данных лучше действительно использовать запрос. хотя смотря что потом с этим объемом данных делать нада...