|
Проблема с отбором документов | ☑ | ||
---|---|---|---|---|
0
1Слайт
09.06.20
✎
13:45
|
Выдает ошибку
{Отчет.АктОбУничтожении.Форма.ФормаОтчета.Форма(129)}: Ошибка при вызове метода контекста (Выбрать) Документ = Документы.АрхивныйДокумент.Выбрать(,,ДецНомерСтруктура); по причине: Недопустимое значение параметра (параметр номер '3') ТаблицаДецНомера = Новый ТаблицаЗначений; ТаблицаДецНомера.Колонки.Добавить("Номер", Новый ОписаниеТипов ("Число",,,,,,), ,); ТаблицаДецНомера.Колонки.Добавить("ДецНомер", Новый ОписаниеТипов ("СправочникСсылка.НомераДок"), ,); Запрос4 = Новый Запрос; Запрос4.Текст ="ВЫБРАТЬ | СписокНомеров.Номер КАК Номер, | СписокНомеров.ДецНомер КАК ДецНомер | ПОМЕСТИТЬ СписокНомеров | ИЗ | &ТаблицаДецНомера КАК СписокНомеров |; |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СписокНомеров.Номер КАК Номер, | СписокНомеров.ДецНомер КАК ДецНомер |ИЗ | СписокНомеров КАК СписокНомеров"; Запрос4.УстановитьПараметр("ТаблицаДецНомера", ТаблицаДецНомера); Для каждого Значение из Отчет.Документы Цикл НоваяСтр = ТаблицаДецНомера.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтр,Значение); КонецЦикла; Если Запрос4.Выполнить().Пустой() Тогда Сообщить("Пусто"); Иначе Выборка4 = Запрос4.Выполнить().Выбрать(); ДецНомерСтруктура = Новый Структура; ДецНомерСтруктура.Вставить("Номер", Выборка4.ДецНомер); Сообщить(ДецНомерСтруктура); Пока Выборка4.Следующий() Цикл Для Каждого Значения Из ДецНомерСтруктура Цикл Документ = Документы.АрхивныйДокумент.Выбрать(,,ДецНомерСтруктура); Сообщить(Документ.Наименование); КонецЦикла; КонецЦикла; КонецЕсли; |
|||
1
Ненавижу 1С
гуру
09.06.20
✎
13:55
|
а зачем ту туда структуру суешь?
|
|||
2
ДенисЧ
09.06.20
✎
13:57
|
(1) А что предлагаешь? Просто по "Номер" отбор так не сделать...
|
|||
3
1Слайт
09.06.20
✎
13:58
|
ребят, вопрос снят, заказчик изменил задачу
спасибо) |
|||
4
Ненавижу 1С
гуру
09.06.20
✎
14:00
|
(2) Да, согласен, но " В качестве полей для отбора могут задаваться только поля "Дата" и реквизиты документа, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или в значение "Индексировать с доп. упорядочиванием".
То есть "Номер" не подходит. Хотя какя-то недоговоренность есть в терминах: поле, атрибут, реквизит, свойство... |
|||
5
1Слайт
09.06.20
✎
14:05
|
сморите, документ я нахожу, в нет есть 2 Табл. части Проекты и Темы
как эти значения мне вытащить? Снова создавать таблицу значений? Если Запрос4.Выполнить().Пустой() Тогда Сообщить("Пусто"); Иначе Выборка4 = Запрос4.Выполнить().Выбрать(); Пока Выборка4.Следующий() Цикл Документ = Документы.АрхивныйДокумент.НайтиПоРеквизиту("ДецНомер", Выборка4.ДецНомер); Сообщить(Документ.Проекты); КонецЦикла; КонецЕсли; |
|||
6
ДенисЧ
09.06.20
✎
14:06
|
Если Запрос4.Выполнить().Пустой() Тогда
Сообщить("Пусто"); Иначе Выборка4 = Запрос4.Выполнить().Выбрать(); А зачем два раза? |
|||
7
1Слайт
09.06.20
✎
14:11
|
(6) что два раза?
|
|||
8
Ненавижу 1С
гуру
09.06.20
✎
14:12
|
возможно ты все усложняешь и все это вообще в одном запросе надо делать
но так тоже можно: ТЗПроекты = Документ.Проекты.Выгрузить(); |
|||
9
Ненавижу 1С
гуру
09.06.20
✎
14:13
|
(7) 2 раза запрос выполняешь методом Выполнить()
кстати это может привести к результату, когда их результаты будут разные |
|||
10
1Слайт
09.06.20
✎
14:13
|
(8) допускаю, возможно все и усложняю)
|
|||
11
1Слайт
09.06.20
✎
14:17
|
(9) я же для проверки пусто или нет
|
|||
12
Ненавижу 1С
гуру
09.06.20
✎
14:20
|
(11)
РезультатЗапроса = Запрос4.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Сообщить("Пусто"); Иначе Выборка4 = РезультатЗапроса.Выбрать(); |
|||
13
1Слайт
09.06.20
✎
14:21
|
ок) как тут пишут новички - я только учусь))
|
|||
14
1Слайт
09.06.20
✎
14:25
|
(8) в одном запросе не получилось(возможно не доразобралась)
основная цель отчет : пользователь выбирает несколько документов(в таблицу значений), нужно из этих документов вытащить необходимую инфу, вот например проекты и темы хранятся тоже в таблицах, вот с этими со всеми таблицами и возникли у меня сложности, просто через запрос не получается, как с обычными реквизитами(опыта маловато) |
|||
15
Ненавижу 1С
гуру
09.06.20
✎
14:26
|
А вообще можно и не выделять отдельно случай пустого запроса - просто цикл не выполнится ни разу:
Пока Выборка4.Следующий() Цикл |
|||
16
Ненавижу 1С
гуру
09.06.20
✎
14:28
|
(14) достаточно передать список документов как параметр в запрос
|
|||
17
1Слайт
09.06.20
✎
14:32
|
(8) кстати. выдает мне не значения, а ТаблицаЗначений
|
|||
18
1Слайт
09.06.20
✎
14:39
|
(16)
вот пробовала запросом выдает ошибку: в запросе, формирующем временную таблицу, не могут выбираться вложенные таблицы <<?>>АрхивныйДокумент.Экземпляры.( ВЫБРАТЬ АрхивныйДокумент.ДецНомер КАК ДецНомер, АрхивныйДокумент.Дата КАК Дата, АрхивныйДокумент.Наименование КАК Наименование, АрхивныйДокумент.КолвоПодл КАК КолвоПодл, АрхивныйДокумент.КолЛистов КАК КолЛистов, АрхивныйДокумент.Экземпляры.( Номер КАК Номер ) КАК Экземпляры, АрхивныйДокумент.Проекты.( КодПроекта КАК КодПроекта ) КАК Проекты, АрхивныйДокумент.ТемыШифры.( НазваниеТемыШифр КАК НазваниеТемыШифр ) КАК ТемыШифры ПОМЕСТИТЬ ВТ ИЗ Документ.АрхивныйДокумент КАК АрхивныйДокумент ГДЕ АрхивныйДокумент.ДецНомер = &ДецНомер ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.ДецНомер КАК ДецНомер, ВТ.Дата КАК Дата, ВТ.Наименование КАК Наименование, ВТ.КолвоПодл КАК КолвоПодл, ВТ.КолЛистов КАК КолЛистов, ВТ.Экземпляры.( Номер КАК Номер ) КАК Экземпляры, ВТ.Проекты.( КодПроекта КАК КодПроекта ) КАК Проекты, ВТ.ТемыШифры.( НазваниеТемыШифр КАК НазваниеТемыШифр ) КАК ТемыШифры ИЗ ВТ КАК ВТ |
|||
19
Ненавижу 1С
гуру
09.06.20
✎
14:54
|
(17) естественно, там же табличная часть
(18) лучше начать с чего мы хотим (что дано более-менее понятно) |
|||
20
1Слайт
09.06.20
✎
14:58
|
(14) вот тут
|
|||
21
Eiffil123
09.06.20
✎
17:40
|
(3) вообще некорректно так темы закрывать. если вопрос решился - нужно хотя бы решение привести
|
|||
22
1Слайт
10.06.20
✎
09:05
|
(21) так тема и не закрыта, изменились условия
|
|||
23
Ненавижу 1С
гуру
10.06.20
✎
09:09
|
20) нет, что с данными этими делать, просто их списком выбрать и все?
|
|||
24
1Слайт
10.06.20
✎
09:15
|
(23) да, проекты и темы мне нужно просто в строчку через запятую записать в ячейку макета
|
|||
25
1Слайт
10.06.20
✎
09:16
|
и еще есть номера экземпляров, тоже таблица, но их занесу в отчетную таблицу
|
|||
26
Ненавижу 1С
гуру
10.06.20
✎
09:22
|
ну хорошо, несколькими запросами, например, один из них:
ВЫБРАТЬ АрхивныйДокументПроекты.КодПроекта КАК КодПроекта ИЗ Документ.АрхивныйДокумент.Проекты КАК АрхивныйДокументПроекты ГДЕ АрхивныйДокументПроекты.Ссылка В (&СписокДокументов) |
|||
27
1Слайт
10.06.20
✎
10:04
|
(26) Спасибо огромное!!!
немного подкорректировала поняла ошибку, я напрямую к ДецНомеру обращалась, надо было через таблицу и ссылку теперь остальное доработаю) ВЫБРАТЬ АрхивныйДокументПроекты.КодПроекта КАК КодПроекта ИЗ Документ.АрхивныйДокумент.Проекты КАК АрхивныйДокументПроекты ГДЕ АрхивныйДокументПроекты.Ссылка.ДецНомер В (&СписокДокументов) |
|||
28
Ненавижу 1С
гуру
10.06.20
✎
11:23
|
(27) будем надеяться, что данный запрос не в цикле
|
|||
29
1Слайт
10.06.20
✎
11:45
|
(28) не))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |