Обновлено: 30.01.2023
У меня есть восемь таблиц, которые содержат информацию об изменениях, вносимых в приложения по всей компании. Я только хочу запросить и объединить строки для подмножества более 200 приложений. Для этого я запрашиваю каждую таблицу по коду приложения (AAA, BBB и т. Д.) И хочу объединить результаты. Когда я использую более 5 кодов приложения, я получаю ошибку «Запрос к комплексу».
Я знаю, что есть более эффективный способ сделать это, но нижеприведенное — лучшее, что я смог сделать с моими ограниченными знаниями.
Я хотел бы иметь возможность запрашивать все 200+ кодов приложений одновременно и более эффективно, чем вводить одну и ту же строку 8 раз для каждого кода.
3 ответа
Более простой подход мог бы заключаться в том, что union данные таблицы перед применяют критерии выбора, поэтому вам нужно указывать критерии только в одном месте, например:
Если вы не используете подстановочные операторы в рамках критериев для like , вы можете альтернативно использовать in и предоставить список кодов приложений:
Кроме того, вы можете создать таблицу, содержащую все коды приложений, которые вы хотите вернуть (в следующем примере я назвал такую таблицу ApplicationCodes , содержащую одно поле с именем Code ), а затем использовать простое объединение для неявного применения фильтрации, например:
Я бы порекомендовал вам создать таблицу, в которой есть все приложения, тогда вы могли бы сделать всего 8 запросов
Если вам это не нравится, вы можете попробовать предложение IN
Имена таблиц, которые содержат даты или порядковые номера и одни и те же поля, обычно должны сочетаться с именем таблицы в качестве дополнительного свойства.
Создайте таблицу (например, ApplicationChanges) с полями объединенных таблиц и добавьте дополнительное поле ChangedAt , которое будет содержать старое имя таблицы. Возможно, старые таблицы содержат поле даты, которое показывает дату ChangedAt, тогда вы можете опустить имя таблицы и запрос, какие даты принадлежат этой таблице.
Затем используйте запрос @LeeMacs для заполнения новой таблицы:
Если вам нужна старая структура данных, создайте запросы для каждой предыдущей таблицы с критерием ChangedAt. Например. Таблица [2019-07-A July 5 to 7]
Алексей Чужов
Возьмите др клиентов,вычтите из этих дат сутки.Затем можно например передать в переменные ДеньВчерРожд=день(ДатаРождМинусОдин);
МесяцВчерРожд=месяц(датаРождМинусОдин);
У вас получиться номер месяца вчерашнего дня рождения и дюномер дня вчерашнего др.А затем сравните их с номером дня и номером месяца текущей даты.Вообщем если не понятно или еще не сделали пишите,не мложно это.Единственный шаткий момент это високосные года.
Где именно хотите получить — в запросе, в СКД, в отчете?
Вообще, чем не устраивает задать дату рождения между:
конечная дата -конец дня текущей даты,
начальная дата — начало дня текущей даты — 24 часа.
В отбор попадут нужные клиенты.
Или у вас дата разбита — отдельно день, отдельно месяц, отдельно год?
Юрий, СКД. Дата разбита: отдельно День, Месяц. И когда задала Дату рождения Между (ДеньГода) — получила. что-то непонятное.
Вот как—то так: ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), ГОД, 1984 — 1), МЕСЯЦ, 12 — 1), ДЕНЬ, 31 — 1) КАК Поле1 . Только вместо цифр года, месяца и дня подставить свои данные из запроса. Суть, берем дату 01.01.0001 и прибавляем день месяц и год. Если год не нужен, его можно опустить. Ну, тем более, имея уже собранную дату, вроде бы не сложно придумать нужное сравнение.
Дмитрий Сметанин запись закреплена
Необходимо создать обработку позволяющую загрузить содержимое файла Excel (в ячейках примитивные типы: строка, число) с любым количеством колонок и строк в таблицу значений на форму обработки.
Таблицу значений на форме нужно создавать программно.
В первой строке файла будут содержатся названия колонок, названия колонок в таблице на форме должны им соответствовать.
Пустые ячейки в таблице на форме нужно выделить красным цветом.
Здарова. Я сам когда-то только начинал работать с 1С. И тоже начинал с экселя. Я бы помог, но времени совсем щас нет. У меня осталась обработка на которой я тренировался. Там и загрузка написана и выгрузка. Может поможет.
Читайте также:
- Как связаны объекты конфигурации и объекты базы данных 1с
- Программа в топе как работает
- Как прошить asus zc500tg
- Как выйти в интернет без браузера на андроид
- Как в фотошопе сделать 3д обложку
Вот в таком запросе при выполнении вываливается ошибка, что запрос слишком сложный попробуйте упростить.
ВЫБРАТЬ
ЗначенияСвойствОбъектов.Объект КАК Объект,
ЗначенияСвойствОбъектов.Свойство КАК Свойство,
ВЫБОР
КОГДА ЗначенияСвойствОбъектов.Значение.Код = 211
ИЛИ ЗначенияСвойствОбъектов.Значение.Код = 212
ТОГДА «Ликероводочные изделия в т.ч.:»
ИНАЧЕ ВЫБОР
КОГДА ЗначенияСвойствОбъектов.Значение.Код = 250
ИЛИ ЗначенияСвойствОбъектов.Значение.Код = 251
ТОГДА «Напитки винные в т.ч.:»
ИНАЧЕ ВЫБОР
КОГДА ЗначенияСвойствОбъектов.Значение.Код = 400
ИЛИ ЗначенияСвойствОбъектов.Значение.Код = 410
ТОГДА «Вина в т.ч.:»
ИНАЧЕ ЗначенияСвойствОбъектов.Значение
КОНЕЦ
КОНЕЦ
КОНЕЦ КАК Значение1,
ЗначенияСвойствОбъектов.Значение КАК Значение
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
ЗначенияСвойствОбъектов.Свойство = &КОДПр
Причем если выкинуть хоть какое-нибудь условие (одно) то все работает.
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
1 |
|
«Слишком сложный запрос»?17.09.2015, 09:36. Показов 5605. Ответов 26
Доброго дня, кто подскажет почему при создании нового запроса выскакивает «слишком сложный запрос»?? такое происходит даже если в запрос добавить просто вывести запись из существующей таблицы.
0 |
17253 / 7093 / 1596 Регистрация: 21.06.2012 Сообщений: 13,347 |
|
17.09.2015, 09:41 |
2 |
Не наблюдается, возможно проблемы с Вашей версией Аксесса.
0 |
Модератор 11462 / 4710 / 759 Регистрация: 07.08.2010 Сообщений: 13,666 Записей в блоге: 4 |
||||||||||||||||||||||||||||||||||||
17.09.2015, 10:54 |
3 |
|||||||||||||||||||||||||||||||||||
в вашей таблице заказ
а в каждом запросе по 11 inner join для прицепки этого самого наименования
0 |
2833 / 1375 / 215 Регистрация: 13.05.2011 Сообщений: 4,213 |
|
17.09.2015, 10:54 |
4 |
такое происходит даже если в запрос добавить просто вывести запись из существующей таблицы При создании нового запроса всё работает. Если имеете в виду редактирование существующего запроса, то укажите какого?
0 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
17.09.2015, 12:20 [ТС] |
5 |
приложила архив, где не работает вродебы простой запрос.
0 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
17.09.2015, 12:31 [ТС] |
6 |
в вашей таблице заказ а как правильно сделать?? Добавлено через 10 минут
0 |
17253 / 7093 / 1596 Регистрация: 21.06.2012 Сообщений: 13,347 |
||
17.09.2015, 12:32 |
7 |
|
где не работает вродебы простой запрос. Из спецификации Аксесс 2010
Может дело в количестве связей. Разбейте запрос на два, связывая в каждом с частью остальных таблиц, о потом соберите эти два в один.
1 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
17.09.2015, 12:38 [ТС] |
8 |
тут дело дошло до того что если я просто запросом этим вызываю любую запись из существующих таблиц, то уже » запрос слишком сложный»…пробовала на 2 компах тоже думала что чтото с версией аксесса…
0 |
17253 / 7093 / 1596 Регистрация: 21.06.2012 Сообщений: 13,347 |
|
17.09.2015, 12:48 |
9 |
К чему там почти все таблицы (да и в Красочность). Оставьте только нужные … (в Красочность это красочность лицо, красочность оборот, нумерация).
0 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
17.09.2015, 12:55 [ТС] |
10 |
бывает что нужно отдельно кр лица и кр оборота…по моему они все нужные, может их связывать лучше не подстановкой???
0 |
ltv_1953 17253 / 7093 / 1596 Регистрация: 21.06.2012 Сообщений: 13,347 |
||||
17.09.2015, 13:08 |
11 |
|||
Еще раз: запрос красочность
Для вычисления [красочность бланка] нужны только три таблицы, зачем все остальные? В запросах должны быть только те таблицы, которые нужны.
0 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
17.09.2015, 14:44 [ТС] |
12 |
делала в режиме конструктора, там этого не видно Добавлено через 1 час 31 минуту
0 |
7336 / 4476 / 289 Регистрация: 12.08.2011 Сообщений: 13,568 |
|
18.09.2015, 05:19 |
13 |
Сообщение было отмечено VinniPuh как решение РешениеПоля подстановок в таблицах недопустимы.
1 |
hrutsik 0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
||||
18.09.2015, 09:31 [ТС] |
14 |
|||
сделала без подстановок, все равно если через конструктор делать join-ит все теблицы! отсюда и перегрузка видимо.
нет ли ошибок?
0 |
8777 / 5643 / 578 Регистрация: 27.03.2013 Сообщений: 19,093 |
|
18.09.2015, 09:58 |
15 |
нет ли ошибок? Если это не БД на 10000 уже забитых ральных данных, типа тестовая, то я что бы перепровериться открываю табличку, удаляю ВСЁ.
0 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
18.09.2015, 12:21 [ТС] |
16 |
PuhKMV, не помогло…
0 |
8777 / 5643 / 578 Регистрация: 27.03.2013 Сообщений: 19,093 |
|
18.09.2015, 12:28 |
17 |
…убрала подстановки,… ну это в таблицах. а в формах перепроверились.
0 |
hrutsik 0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
||||
18.09.2015, 12:58 [ТС] |
18 |
|||
там нет форм…только таблицы…может связи не верно установлены??? запуталась совсем… п.с. почему если через конструктор запросов пишу, то лишние таблицы join-тся?? Добавлено через 22 минуты
не срабатывает, просит параметр…
0 |
17253 / 7093 / 1596 Регистрация: 21.06.2012 Сообщений: 13,347 |
|
18.09.2015, 13:12 |
19 |
Какой? Ищите по имени параметра, поля какой таблицы не хватает в запросе. И добавьте ее в запрос.
0 |
8777 / 5643 / 578 Регистрация: 27.03.2013 Сообщений: 19,093 |
|
18.09.2015, 13:23 |
20 |
ой, вспомнил случаи из жизни, часио бывает. чтьо если не через форму. а просто в таблице или запросе данные наобум вводятся. то такое тоже бывает, еще если в самой таблице — значение по умолчанию прописано.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
18.09.2015, 13:23 |
20 |
Обновлено: 30.01.2023
У меня есть восемь таблиц, которые содержат информацию об изменениях, вносимых в приложения по всей компании. Я только хочу запросить и объединить строки для подмножества более 200 приложений. Для этого я запрашиваю каждую таблицу по коду приложения (AAA, BBB и т. Д.) И хочу объединить результаты. Когда я использую более 5 кодов приложения, я получаю ошибку «Запрос к комплексу».
Я знаю, что есть более эффективный способ сделать это, но нижеприведенное — лучшее, что я смог сделать с моими ограниченными знаниями.
Я хотел бы иметь возможность запрашивать все 200+ кодов приложений одновременно и более эффективно, чем вводить одну и ту же строку 8 раз для каждого кода.
3 ответа
Более простой подход мог бы заключаться в том, что union данные таблицы перед применяют критерии выбора, поэтому вам нужно указывать критерии только в одном месте, например:
Если вы не используете подстановочные операторы в рамках критериев для like , вы можете альтернативно использовать in и предоставить список кодов приложений:
Кроме того, вы можете создать таблицу, содержащую все коды приложений, которые вы хотите вернуть (в следующем примере я назвал такую таблицу ApplicationCodes , содержащую одно поле с именем Code ), а затем использовать простое объединение для неявного применения фильтрации, например:
Я бы порекомендовал вам создать таблицу, в которой есть все приложения, тогда вы могли бы сделать всего 8 запросов
Если вам это не нравится, вы можете попробовать предложение IN
Имена таблиц, которые содержат даты или порядковые номера и одни и те же поля, обычно должны сочетаться с именем таблицы в качестве дополнительного свойства.
Создайте таблицу (например, ApplicationChanges) с полями объединенных таблиц и добавьте дополнительное поле ChangedAt , которое будет содержать старое имя таблицы. Возможно, старые таблицы содержат поле даты, которое показывает дату ChangedAt, тогда вы можете опустить имя таблицы и запрос, какие даты принадлежат этой таблице.
Затем используйте запрос @LeeMacs для заполнения новой таблицы:
Если вам нужна старая структура данных, создайте запросы для каждой предыдущей таблицы с критерием ChangedAt. Например. Таблица [2019-07-A July 5 to 7]
Алексей Чужов
Возьмите др клиентов,вычтите из этих дат сутки.Затем можно например передать в переменные ДеньВчерРожд=день(ДатаРождМинусОдин);
МесяцВчерРожд=месяц(датаРождМинусОдин);
У вас получиться номер месяца вчерашнего дня рождения и дюномер дня вчерашнего др.А затем сравните их с номером дня и номером месяца текущей даты.Вообщем если не понятно или еще не сделали пишите,не мложно это.Единственный шаткий момент это високосные года.
Где именно хотите получить — в запросе, в СКД, в отчете?
Вообще, чем не устраивает задать дату рождения между:
конечная дата -конец дня текущей даты,
начальная дата — начало дня текущей даты — 24 часа.
В отбор попадут нужные клиенты.
Или у вас дата разбита — отдельно день, отдельно месяц, отдельно год?
Юрий, СКД. Дата разбита: отдельно День, Месяц. И когда задала Дату рождения Между (ДеньГода) — получила. что-то непонятное.
Вот как—то так: ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), ГОД, 1984 — 1), МЕСЯЦ, 12 — 1), ДЕНЬ, 31 — 1) КАК Поле1 . Только вместо цифр года, месяца и дня подставить свои данные из запроса. Суть, берем дату 01.01.0001 и прибавляем день месяц и год. Если год не нужен, его можно опустить. Ну, тем более, имея уже собранную дату, вроде бы не сложно придумать нужное сравнение.
Дмитрий Сметанин запись закреплена
Необходимо создать обработку позволяющую загрузить содержимое файла Excel (в ячейках примитивные типы: строка, число) с любым количеством колонок и строк в таблицу значений на форму обработки.
Таблицу значений на форме нужно создавать программно.
В первой строке файла будут содержатся названия колонок, названия колонок в таблице на форме должны им соответствовать.
Пустые ячейки в таблице на форме нужно выделить красным цветом.
Здарова. Я сам когда-то только начинал работать с 1С. И тоже начинал с экселя. Я бы помог, но времени совсем щас нет. У меня осталась обработка на которой я тренировался. Там и загрузка написана и выгрузка. Может поможет.
Читайте также:
- Как связаны объекты конфигурации и объекты базы данных 1с
- Программа в топе как работает
- Как прошить asus zc500tg
- Как выйти в интернет без браузера на андроид
- Как в фотошопе сделать 3д обложку
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
1 |
|
«Слишком сложный запрос»?17.09.2015, 09:36. Показов 5451. Ответов 26
Доброго дня, кто подскажет почему при создании нового запроса выскакивает «слишком сложный запрос»?? такое происходит даже если в запрос добавить просто вывести запись из существующей таблицы. 0 |
17139 / 7005 / 1567 Регистрация: 21.06.2012 Сообщений: 13,110 |
|
17.09.2015, 09:41 |
2 |
Не наблюдается, возможно проблемы с Вашей версией Аксесса. 0 |
Модератор 11335 / 4654 / 748 Регистрация: 07.08.2010 Сообщений: 13,484 Записей в блоге: 4 |
||||||||||||||||||||||||||||||||||||
17.09.2015, 10:54 |
3 |
|||||||||||||||||||||||||||||||||||
в вашей таблице заказ
а в каждом запросе по 11 inner join для прицепки этого самого наименования 0 |
2832 / 1374 / 215 Регистрация: 13.05.2011 Сообщений: 4,208 |
|
17.09.2015, 10:54 |
4 |
такое происходит даже если в запрос добавить просто вывести запись из существующей таблицы При создании нового запроса всё работает. Если имеете в виду редактирование существующего запроса, то укажите какого? 0 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
17.09.2015, 12:20 [ТС] |
5 |
приложила архив, где не работает вродебы простой запрос. 0 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
17.09.2015, 12:31 [ТС] |
6 |
в вашей таблице заказ а как правильно сделать?? Добавлено через 10 минут 0 |
17139 / 7005 / 1567 Регистрация: 21.06.2012 Сообщений: 13,110 |
||
17.09.2015, 12:32 |
7 |
|
где не работает вродебы простой запрос. Из спецификации Аксесс 2010
Может дело в количестве связей. Разбейте запрос на два, связывая в каждом с частью остальных таблиц, о потом соберите эти два в один. 1 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
17.09.2015, 12:38 [ТС] |
8 |
тут дело дошло до того что если я просто запросом этим вызываю любую запись из существующих таблиц, то уже » запрос слишком сложный»…пробовала на 2 компах тоже думала что чтото с версией аксесса… 0 |
17139 / 7005 / 1567 Регистрация: 21.06.2012 Сообщений: 13,110 |
|
17.09.2015, 12:48 |
9 |
К чему там почти все таблицы (да и в Красочность). Оставьте только нужные … (в Красочность это красочность лицо, красочность оборот, нумерация). 0 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
17.09.2015, 12:55 [ТС] |
10 |
бывает что нужно отдельно кр лица и кр оборота…по моему они все нужные, может их связывать лучше не подстановкой??? 0 |
ltv_1953 17139 / 7005 / 1567 Регистрация: 21.06.2012 Сообщений: 13,110 |
||||
17.09.2015, 13:08 |
11 |
|||
Еще раз: запрос красочность
Для вычисления [красочность бланка] нужны только три таблицы, зачем все остальные? В запросах должны быть только те таблицы, которые нужны. 0 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
17.09.2015, 14:44 [ТС] |
12 |
делала в режиме конструктора, там этого не видно Добавлено через 1 час 31 минуту 0 |
7267 / 4469 / 288 Регистрация: 12.08.2011 Сообщений: 13,513 |
|
18.09.2015, 05:19 |
13 |
Сообщение было отмечено VinniPuh как решение РешениеПоля подстановок в таблицах недопустимы. 1 |
hrutsik 0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
||||
18.09.2015, 09:31 [ТС] |
14 |
|||
сделала без подстановок, все равно если через конструктор делать join-ит все теблицы! отсюда и перегрузка видимо.
нет ли ошибок? 0 |
8704 / 5476 / 571 Регистрация: 27.03.2013 Сообщений: 18,806 |
|
18.09.2015, 09:58 |
15 |
нет ли ошибок? Если это не БД на 10000 уже забитых ральных данных, типа тестовая, то я что бы перепровериться открываю табличку, удаляю ВСЁ. 0 |
0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
|
18.09.2015, 12:21 [ТС] |
16 |
PuhKMV, не помогло… 0 |
8704 / 5476 / 571 Регистрация: 27.03.2013 Сообщений: 18,806 |
|
18.09.2015, 12:28 |
17 |
…убрала подстановки,… ну это в таблицах. а в формах перепроверились. 0 |
hrutsik 0 / 0 / 0 Регистрация: 08.01.2015 Сообщений: 62 |
||||
18.09.2015, 12:58 [ТС] |
18 |
|||
там нет форм…только таблицы…может связи не верно установлены??? запуталась совсем… п.с. почему если через конструктор запросов пишу, то лишние таблицы join-тся?? Добавлено через 22 минуты
не срабатывает, просит параметр… 0 |
17139 / 7005 / 1567 Регистрация: 21.06.2012 Сообщений: 13,110 |
|
18.09.2015, 13:12 |
19 |
Какой? Ищите по имени параметра, поля какой таблицы не хватает в запросе. И добавьте ее в запрос. 0 |
8704 / 5476 / 571 Регистрация: 27.03.2013 Сообщений: 18,806 |
|
18.09.2015, 13:23 |
20 |
ой, вспомнил случаи из жизни, часио бывает. чтьо если не через форму. а просто в таблице или запросе данные наобум вводятся. то такое тоже бывает, еще если в самой таблице — значение по умолчанию прописано. 0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
18.09.2015, 13:23 |
20 |
Вот в таком запросе при выполнении вываливается ошибка, что запрос слишком сложный попробуйте упростить.
ВЫБРАТЬ
ЗначенияСвойствОбъектов.Объект КАК Объект,
ЗначенияСвойствОбъектов.Свойство КАК Свойство,
ВЫБОР
КОГДА ЗначенияСвойствОбъектов.Значение.Код = 211
ИЛИ ЗначенияСвойствОбъектов.Значение.Код = 212
ТОГДА «Ликероводочные изделия в т.ч.:»
ИНАЧЕ ВЫБОР
КОГДА ЗначенияСвойствОбъектов.Значение.Код = 250
ИЛИ ЗначенияСвойствОбъектов.Значение.Код = 251
ТОГДА «Напитки винные в т.ч.:»
ИНАЧЕ ВЫБОР
КОГДА ЗначенияСвойствОбъектов.Значение.Код = 400
ИЛИ ЗначенияСвойствОбъектов.Значение.Код = 410
ТОГДА «Вина в т.ч.:»
ИНАЧЕ ЗначенияСвойствОбъектов.Значение
КОНЕЦ
КОНЕЦ
КОНЕЦ КАК Значение1,
ЗначенияСвойствОбъектов.Значение КАК Значение
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
ЗначенияСвойствОбъектов.Свойство = &КОДПр
Причем если выкинуть хоть какое-нибудь условие (одно) то все работает.
полнотекстовый поиск или запрос
Автор denis-moscow1987, 19 июл 2014, 10:18
0 Пользователей и 1 гость просматривают эту тему.
СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(«», 20);
СписокПоиска.ПолучатьОписание = Истина;
МассивМД = Новый Массив();
МассивМД.Добавить(Метаданные.сПРАВОЧНИКИ.ДоговорыКонтрагентов);
СписокПоиска.ОбластьПоиска = МассивМД;
СписокПоиска.СтрокаПоиска = «КЛЦ»;
СписокПоиска.РазмерПорции = «20»;
СписокПоиска.ПерваяЧасть();
Если СписокПоиска.ПолноеКоличество() = 0 Тогда
Если СписокПоиска.СлишкомМногоРезультатов() Тогда
Сообщить(«Слишком много результатов, уточните запрос.»);
КонецЕсли;
Возврат;
КонецЕсли;
Колво = СписокПоиска.ПолноеКоличество();
Реквизит1 = СписокПоиска.ПолучитьОтображение(ВидОтображенияПолнотекстовогоПоиска.HTMLТекст);
Сообщить(Реквизит1);
вот код, поиск идет по всем реквизитам справочника, а как сделать чтобы
1.поиск шел только по наименованию?
2. пометить на удаление выдачу поиска.
спасибо
Чем вам не нравится НайтиПоНаименованию() или запрос??
К чему такая экзотика?
Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.
Цитата: cska-fanat-kz от 21 июл 2014, 15:20
Чем вам не нравится НайтиПоНаименованию() или запрос??
К чему такая экзотика?
Видать человек не знает что в запросе можно искать по «Подобно» , а найти по наименованию возвращает 1 элемент)
В данном случае надо использовать запрос в условии Где пишем Контрагенты.Наименование Подобно &СтрокаПоиска.
Устанавливаем в параметр СтрокаПоиска шаблон поиска, далее в выборке если надо получаем объекты и делаем с ними что хотим.
Обновлено: 11.04.2023
У меня есть восемь таблиц, которые содержат информацию об изменениях, вносимых в приложения по всей компании. Я только хочу запросить и объединить строки для подмножества более 200 приложений. Для этого я запрашиваю каждую таблицу по коду приложения (AAA, BBB и т. Д.) И хочу объединить результаты. Когда я использую более 5 кодов приложения, я получаю ошибку «Запрос к комплексу».
Я знаю, что есть более эффективный способ сделать это, но нижеприведенное — лучшее, что я смог сделать с моими ограниченными знаниями.
Я хотел бы иметь возможность запрашивать все 200+ кодов приложений одновременно и более эффективно, чем вводить одну и ту же строку 8 раз для каждого кода.
3 ответа
Более простой подход мог бы заключаться в том, что union данные таблицы перед применяют критерии выбора, поэтому вам нужно указывать критерии только в одном месте, например:
Если вы не используете подстановочные операторы в рамках критериев для like , вы можете альтернативно использовать in и предоставить список кодов приложений:
Кроме того, вы можете создать таблицу, содержащую все коды приложений, которые вы хотите вернуть (в следующем примере я назвал такую таблицу ApplicationCodes , содержащую одно поле с именем Code ), а затем использовать простое объединение для неявного применения фильтрации, например:
Я бы порекомендовал вам создать таблицу, в которой есть все приложения, тогда вы могли бы сделать всего 8 запросов
Если вам это не нравится, вы можете попробовать предложение IN
Имена таблиц, которые содержат даты или порядковые номера и одни и те же поля, обычно должны сочетаться с именем таблицы в качестве дополнительного свойства.
Создайте таблицу (например, ApplicationChanges) с полями объединенных таблиц и добавьте дополнительное поле ChangedAt , которое будет содержать старое имя таблицы. Возможно, старые таблицы содержат поле даты, которое показывает дату ChangedAt, тогда вы можете опустить имя таблицы и запрос, какие даты принадлежат этой таблице.
Затем используйте запрос @LeeMacs для заполнения новой таблицы:
Если вам нужна старая структура данных, создайте запросы для каждой предыдущей таблицы с критерием ChangedAt. Например. Таблица [2019-07-A July 5 to 7]
Алексей Чужов
Возьмите др клиентов,вычтите из этих дат сутки.Затем можно например передать в переменные ДеньВчерРожд=день(ДатаРождМинусОдин);
МесяцВчерРожд=месяц(датаРождМинусОдин);
У вас получиться номер месяца вчерашнего дня рождения и дюномер дня вчерашнего др.А затем сравните их с номером дня и номером месяца текущей даты.Вообщем если не понятно или еще не сделали пишите,не мложно это.Единственный шаткий момент это високосные года.
Где именно хотите получить — в запросе, в СКД, в отчете?
Вообще, чем не устраивает задать дату рождения между:
конечная дата -конец дня текущей даты,
начальная дата — начало дня текущей даты — 24 часа.
В отбор попадут нужные клиенты.
Или у вас дата разбита — отдельно день, отдельно месяц, отдельно год?
Юрий, СКД. Дата разбита: отдельно День, Месяц. И когда задала Дату рождения Между (ДеньГода) — получила. что-то непонятное.
Вот как—то так: ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), ГОД, 1984 — 1), МЕСЯЦ, 12 — 1), ДЕНЬ, 31 — 1) КАК Поле1 . Только вместо цифр года, месяца и дня подставить свои данные из запроса. Суть, берем дату 01.01.0001 и прибавляем день месяц и год. Если год не нужен, его можно опустить. Ну, тем более, имея уже собранную дату, вроде бы не сложно придумать нужное сравнение.
Дмитрий Сметанин запись закреплена
Необходимо создать обработку позволяющую загрузить содержимое файла Excel (в ячейках примитивные типы: строка, число) с любым количеством колонок и строк в таблицу значений на форму обработки.
Таблицу значений на форме нужно создавать программно.
В первой строке файла будут содержатся названия колонок, названия колонок в таблице на форме должны им соответствовать.
Пустые ячейки в таблице на форме нужно выделить красным цветом.
Здарова. Я сам когда-то только начинал работать с 1С. И тоже начинал с экселя. Я бы помог, но времени совсем щас нет. У меня осталась обработка на которой я тренировался. Там и загрузка написана и выгрузка. Может поможет.
Читайте также:
- Как связаны объекты конфигурации и объекты базы данных 1с
- Программа в топе как работает
- Как прошить asus zc500tg
- Как выйти в интернет без браузера на андроид
- Как в фотошопе сделать 3д обложку
полнотекстовый поиск или запрос
Автор denis-moscow1987, 19 июл 2014, 10:18
0 Пользователей и 1 гость просматривают эту тему.
СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(«», 20);
СписокПоиска.ПолучатьОписание = Истина;
МассивМД = Новый Массив();
МассивМД.Добавить(Метаданные.сПРАВОЧНИКИ.ДоговорыКонтрагентов);
СписокПоиска.ОбластьПоиска = МассивМД;
СписокПоиска.СтрокаПоиска = «КЛЦ»;
СписокПоиска.РазмерПорции = «20»;
СписокПоиска.ПерваяЧасть();
Если СписокПоиска.ПолноеКоличество() = 0 Тогда
Если СписокПоиска.СлишкомМногоРезультатов() Тогда
Сообщить(«Слишком много результатов, уточните запрос.»);
КонецЕсли;
Возврат;
КонецЕсли;
Колво = СписокПоиска.ПолноеКоличество();
Реквизит1 = СписокПоиска.ПолучитьОтображение(ВидОтображенияПолнотекстовогоПоиска.HTMLТекст);
Сообщить(Реквизит1);
вот код, поиск идет по всем реквизитам справочника, а как сделать чтобы
1.поиск шел только по наименованию?
2. пометить на удаление выдачу поиска.
спасибо
Чем вам не нравится НайтиПоНаименованию() или запрос??
К чему такая экзотика?
Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.
Цитата: cska-fanat-kz от 21 июл 2014, 15:20
Чем вам не нравится НайтиПоНаименованию() или запрос??
К чему такая экзотика?
Видать человек не знает что в запросе можно искать по «Подобно» , а найти по наименованию возвращает 1 элемент)
В данном случае надо использовать запрос в условии Где пишем Контрагенты.Наименование Подобно &СтрокаПоиска.
Устанавливаем в параметр СтрокаПоиска шаблон поиска, далее в выборке если надо получаем объекты и делаем с ними что хотим.