![]() |
|
выбор всех НЕудаленных из справочника | ☑ | ||
---|---|---|---|---|
0
zbrhd13
naïve
04.07.24
✎
09:40
|
СправочникМенеджер.<Имя справочника>.Выбрать()
Подскажите, как сформировать параметр отбор, чтобы вывелись все НЕ помеченные на удаление? Отбор = Новый Структура("ПометкаУдаления"); Отбор.ПометкаУдаления = Истина; приводит к ошибке Недопустимое значение параметра (параметр номер '3') |
|||
1
2S
04.07.24
✎
09:42
|
Фу бяка запросом пользоваться?
|
|||
2
zbrhd13
naïve
04.07.24
✎
09:45
|
(1) проблема в том, что у меня заранее неизвестно из чего выбирать. Пользователь выбирает что выводить через форму ВыборОбъектовМетаданных. Как потом передать в запрос то, что выбрал пользователь я что-то не понял
|
|||
3
Волшебник
04.07.24
✎
09:46
|
(0) Сформируйте текст запроса динамически.
|
|||
4
RVN
04.07.24
✎
09:46
|
В 1С Конфигуратор встроена такая странная штука, синтаксический помощник называется. И вот что он пишет:
СправочникМенеджер.<Имя справочника> (CatalogManager.<Catalog name>) Выбрать (Select) Синтаксис: Выбрать(<Родитель>, <Владелец>, <Отбор>, <Порядок>) Параметры: <Родитель> (необязательный) Тип: СправочникСсылка.<Имя справочника>. Отбор по родителю. Имеет смысл только для многоуровневых справочников. Если параметр не задан, то отбор по родителю не производится. Чтобы отобрать элементы верхнего уровня, нужно в качестве данного параметра указать пустую ссылку на элемент справочника. <Владелец> (необязательный) Тип: СправочникСсылка.<Имя справочника>. Отбор по владельцу. Имеет смысл только для подчиненных справочников. Если параметр не задан, то отбор по владельцу не производится. <Отбор> (необязательный) Тип: Структура. Задает поле и значение отбора открываемой выборки. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. В качестве полей для отбора могут задаваться только поля "Код", "Наименование" и реквизиты справочника, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или в значение "Индексировать с доп. упорядоч.". Важно! Структура может содержать только один элемент. |
|||
5
Волшебник
04.07.24
✎
09:47
|
(2) Может программирование это не Ваше?
|
|||
6
zbrhd13
naïve
04.07.24
✎
09:50
|
(5) а вы когда только начали программировать, знали сразу все?
|
|||
7
RVN
04.07.24
✎
09:55
|
(2) Ну 1Сник мог бы написать примерно так:
лТекст = " |ВЫБРАТЬ | ТаблицаСправочника.Ссылка КАК Ссылка |ИЗ | Справочник.%1 КАК ТаблицаСправочника |ГДЕ | ТаблицаСправочника.ПометкаУдаления = ЛОЖЬ |"; лЗапрос = Новый Запрос(СтрШаблон(лТекст, "вот тут имя справочника")); лВыборка = лЗапрос.Выполнить().Выбрать(); Пока лВыборка.Следующий() Цикл КонецЦикла; А реальные пацаны могут просто вашу выборку без отбора перебрать в цикле и отсеять лишнее по условию.... |
|||
8
Shurjk
04.07.24
✎
09:55
|
(6) Как минимум умели находить ответы не простые вопросы.
|
|||
9
Ненавижу 1С
04.07.24
✎
10:01
|
(7) занудствую:
лТекст = " |ВЫБРАТЬ | Таблица.Ссылка КАК Ссылка |ИЗ | #Таблица КАК Таблица |ГДЕ | НЕ Таблица.ПометкаУдаления |"; лТекст = СтрЗаменить(лТекст,"#Таблица",ИмяТаблицы); |
|||
10
Волшебник
04.07.24
✎
10:01
|
(6) А Вы вообще нормальный, что хотите выбрать запросом весь справочник? В голове ничего не щёлкает?
|
|||
11
zbrhd13
naïve
04.07.24
✎
10:09
|
(9) (7) спасибо
|
|||
12
Garykom
04.07.24
✎
10:10
|
ТС неправильно описал задачу
Вероятно ему надо допилить форму выбора, для скрытия помеченных на удаление |
|||
13
RVN
04.07.24
✎
10:12
|
(9) Обоснуйте ваш вариант, плиз)
|
|||
14
Garykom
04.07.24
✎
10:20
|
(9) Старый клюшечник детектед ))
Сам долго от имен переменных с "л" отвыкал |
|||
15
RVN
04.07.24
✎
10:23
|
(14) ну так-то я начинал с ассебмлера)))
А в 1С с 1С 6.0. Мдаааа.... Было время.... Но конкретно этот код - это просто запрос в консоли, а потом кнопка "Вывод текста запроса" )) |
|||
16
Мультук
04.07.24
✎
10:30
|
(14)
P.S. А я так до сих пор пишу. Префиксы для локальных переменных Префиксы для аргументов функции. Как это по научному - Да некрасиво, не модно -- но я помню как (имхо еще в 7.7) назвал локальную переменную "Документы" и не понимал "ну какого хрена". ИМХО с пространством имен в 1С -- до сих пор печаль. |
|||
17
ЖНЕЦ
04.07.24
✎
10:42
|
сегодня нет магнитных бурь? Или жара мозг плавит?
Может все проще ? НайтиПомеченныеНаУдаление (FindMarkedForDeletion) Синтаксис: НайтиПомеченныеНаУдаление(<ОбластьПоиска>, <ВключитьОбъекты>, <ИсключитьОбъекты>) |
|||
18
Ненавижу 1С
04.07.24
✎
10:45
|
(13) текст запроса открывается в конструкторе
(14) имена переменных оставил как в оригинале (7) |
|||
19
Ненавижу 1С
04.07.24
✎
10:46
|
(17) что нам это дает?
|
|||
20
Garykom
04.07.24
✎
11:00
|
(18) >имена переменных оставил как в оригинале
Почему не по современному? Функция ТекстЗапросаШаблон() ТекстЗапроса = "ВЫБРАТЬ | Таблица.Ссылка КАК Ссылка |ИЗ | #Таблица КАК Таблица |ГДЕ | НЕ Таблица.ПометкаУдаления"; Возврат ТекстЗапроса; КонецФункции Функция ВыборВсехНЕудаленныхИзСправочника(ИмяТаблицы) ТекстЗапроса = СтрЗаменить(ТекстЗапросаШаблон(), "#Таблица", ИмяТаблицы); Запрос = Новый Запрос(ТекстЗапроса); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); Возврат РезультатЗапроса; КонецФункции |
|||
21
ЖНЕЦ
04.07.24
✎
10:56
|
(19)(20)
вы делаете по : по названию темы "выбор всех НЕудаленных из справочника" но. ТС пишет Отбор = Новый Структура("ПометкаУдаления"); Отбор.ПометкаУдаления = Истина; т.е. ему нужно найти ВСЕ что НЕУДАЛИЛОСЬ штатным способом а не "НЕ Таблица.ПометкаУдаления" |
|||
22
ЖНЕЦ
04.07.24
✎
10:58
|
Велик и Могуч Русский Язык (с)
|
|||
23
Garykom
04.07.24
✎
10:59
|
(21) Ничего не знаю, код запроса оставил как в (9)
|
|||
24
RVN
04.07.24
✎
10:59
|
(18) Век живи - век учись (с) Про то, что такое открывается в конструкторе - не знал. Спасибо.
|
|||
25
Ненавижу 1С
04.07.24
✎
11:02
|
(20) совершенству нет предела
вообще язык запросов в 1С такое себе. В этом плане LINQ-выражения в .Net приятнее |
|||
26
Ненавижу 1С
04.07.24
✎
11:04
|
(21) тогда все что не удалилось, это весь справочник )))
|
|||
27
ЖНЕЦ
04.07.24
✎
11:08
|
(26) нет, если есть ссылки на объект - то он не удаляется (остается с пометкой на удаление)
вот ТС и хочет найти все это дело - изобретает велосипед |
|||
28
Garykom
04.07.24
✎
11:13
|
(27) Помеченные на удаление но со ссылками?
|
|||
29
KJlag
04.07.24
✎
11:52
|
(21)
в (0) "чтобы вывелись все НЕ помеченные на удаление?" "Отбор.ПометкаУдаления = Истина;" не понять чего хочет ТС главное чтобы он не начал шпиговать Объект.Удалить(), взяв код из (7)(9) без корректировок под свои хотелки |
|||
30
zbrhd13
naïve
05.07.24
✎
07:38
|
(29) все НЕ помеченные на удаление. В коде, что я привел, просто ошибся. В итоге получилось сделать запросом. Всем спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |