×
Показано с 1 по 17 из 17
  1. Клерк
    Регистрация
    23.07.2010
    Сообщений
    7

    Вопрос Помогите написать несложной запрос (1С 7.7)...

    Очень нужна помощь для выполнения следующей задачи.
    Исходные данные: 1C 7.7 оперативный учет, база DBF.
    В конфигурации есть справочник "Товары", справочник "Категории" и справочник "КатегорииТоваров", реквизитом которого является элемент справочника "Категории". "КатегорииТоваров" подчинен справочнику "Товары". В каждом товаре присутствует множество категорий. Требуется построить выборку товаров по по выбранным категориям. Категории для фильтра выбираются в виде списка (из справочника "Категории"). В результирующую таблицу должны попасть те товары, у которых присутствуют ВСЕ выбранные категории (т.е. фильтр "И")
    Очень хочется получить результат используя единственный запрос и не вычищая результат запроса от лишних значений.
    Штатными стредствами получилось только вычищая результат запроса от лишнего. Рассматриваю вариант SQL запроса с помощью 1sqlite, но к сожалению в SQL запросах -- полный ноль
    Для эксперементов цепляю свою тестовую конфигурацию с данными.
    библиотеку 1sqlite.dll можно легко найти в инете.
    Заранее благодарен всем откликнувшимся.
    Вложения Вложения
    • Тип файла: zip test.zip (16.5 Кб, Просмотров: 193)
    Поделиться с друзьями
    Последний раз редактировалось kentavr27; 24.07.2010 в 00:03.

  2. Клерк
    Регистрация
    09.06.2010
    Сообщений
    38
    А зачем нужно цеплять тестовую конфигурацию с данными, да еще какую-то библиотеку?

  3. Клерк
    Регистрация
    23.07.2010
    Сообщений
    7
    Цитата Сообщение от varfolomey Посмотреть сообщение
    А зачем нужно цеплять тестовую конфигурацию с данными, да еще какую-то библиотеку?
    Очень странный вопрос...
    В тестовой конфе готовые данные для выполнения задачи. (это что бы не на пльцах объяснять, а на конкретном примере)
    А с помощью "какой-то библиотеки" должна решиться эта задача, потому как штатные средства не устраивают...

  4. Клерк
    Регистрация
    09.06.2010
    Сообщений
    38
    Цитата Сообщение от kentavr27 Посмотреть сообщение
    Очень странный вопрос...
    В тестовой конфе готовые данные для выполнения задачи. (это что бы не на пльцах объяснять, а на конкретном примере)
    А с помощью "какой-то библиотеки" должна решиться эта задача, потому как штатные средства не устраивают...
    Так ты просишь помочь текст запроса написать? Или хочешь купить отчет?
    И зачем ты так настаиваешь именно на этом инструменте для решения? Сам ты его не знаешь, для решенеия вполне достаточно черного запроса ...
    Что хотел-то?

  5. Клерк
    Регистрация
    23.07.2010
    Сообщений
    7
    Цитата Сообщение от varfolomey Посмотреть сообщение
    Так ты просишь помочь текст запроса написать? Или хочешь купить отчет?
    И зачем ты так настаиваешь именно на этом инструменте для решения? Сам ты его не знаешь, для решенеия вполне достаточно черного запроса ...
    Что хотел-то?
    Мне показалось, что я в теме написал что мне нужно...
    На этом инструменте -- потому что SQL запросы работают в мнопольном режиме и не нужно никаких драйверов кроме длл-ки. "Черный запрос" -- в смысле штатный? Очень интересно... и как же должен выглядеть тест такого запроса для получения НУЖНОГО результата?

  6. Бухгалтер Аватар для ZloiBuhgalter
    Регистрация
    21.08.2003
    Адрес
    г.Москва. р-н Выхино (для тактических ракет, точнее - не обязательно)
    Сообщений
    12,863
    Т.е. здесь запрос за спасибо, а там з/п?
    Время до завершения бухгалтерской работы есть величина постоянная...
    © Законы Мерфи.


  7. Клерк
    Регистрация
    23.07.2010
    Сообщений
    7
    Цитата Сообщение от ZloiBuhgalter Посмотреть сообщение
    Т.е. здесь запрос за спасибо, а там з/п?
    "там" -- будет независимо от Вашего участия. А это всего просьба помощи. Знающему человеку -- ровно 4 минуты времени.

  8. Бухгалтер Аватар для ZloiBuhgalter
    Регистрация
    21.08.2003
    Адрес
    г.Москва. р-н Выхино (для тактических ракет, точнее - не обязательно)
    Сообщений
    12,863
    Так ТАМ то будет не ТОМУ КТО СДЕЛАЛ.
    Время до завершения бухгалтерской работы есть величина постоянная...
    © Законы Мерфи.


  9. Клерк Аватар для Bazil
    Регистрация
    27.01.2003
    Адрес
    Санкт-Петербург
    Сообщений
    2,629
    Это похоже на какое-то тестовое задание. Запусти конструктор запросов, попробуй варианты, выгрузи запрос в ТЗ и просмотри его.
    С уважением, Bazil.

  10. Клерк
    Регистрация
    23.07.2010
    Сообщений
    7
    Цитата Сообщение от Bazil Посмотреть сообщение
    Это похоже на какое-то тестовое задание. Запусти конструктор запросов, попробуй варианты, выгрузи запрос в ТЗ и просмотри его.
    Я чего-то, наверное, не понял. Какой конструктор? Куда выгрузить?
    В 1С-ке появился конструктор SQL запросов? Штатным запросом эта задача НЕ реализуема (по-моему так... если, конечно, в штатном языке запросов не добавились возможности )
    Я вроде бы четко описал задачу и требуемый результат. Перебирать ТЗ не интересно. Кстати в архиве уже есть решение с помощью перебора ТЗ...

    Интересно, здесь по сути темы кто-нибудь в состоянии что-то сказать?

  11. Клерк Аватар для Bazil
    Регистрация
    27.01.2003
    Адрес
    Санкт-Петербург
    Сообщений
    2,629
    Я чего-то, наверное, не понял. Какой конструктор? Куда выгрузить?
    Уважаемый. Имелся в виду штатный конструктор "черных" запросов. Он присутствует в конфигураторе наряду с конструктором запроса по бухитогам.
    Причем тут SQL? Версия 7.7 имеет 2 формата хранения данных - dbf и SQL. Поскольку мы живем в свободной стране, Вам никто не может запретить писать прямые запросы к данным, в т.ч. и к SQL-формата.
    ТЗ упомянута в связи с имеющимся методом Запрос.Выгрузить(). Для быстрой отладки данных он бывает удобен.
    Интересно, здесь по сути темы кто-нибудь в состоянии что-то сказать?
    Вам ответили уже ответили по сути в 4, 6, 8. Отвечать прямее - быть забаненным на этом форуме...
    Ну допустим, Вы описали задачу и результат... И что из этого? Я Вам не родственник и не подчиненный, чтобы решать Ваши проблемы. Да мы с Вами даже не пили вместе!!! Как и все здесь на форуме.
    Последний раз редактировалось Bazil; 26.07.2010 в 21:04.
    С уважением, Bazil.

  12. Клерк
    Регистрация
    23.07.2010
    Сообщений
    7
    Цитата Сообщение от Bazil Посмотреть сообщение
    Причем тут SQL? Версия 7.7 имеет 2 формата хранения данных - dbf и SQL.
    Исходные данные: 1C 7.7 оперативный учет, база DBF
    см. сам().вопрос


    Цитата Сообщение от Bazil Посмотреть сообщение
    Ну допустим, Вы описали задачу и результат... И что из этого? Я Вам не родственник и не подчиненный, чтобы решать Ваши проблемы. Да мы с Вами даже не пили вместе!!! Как и все здесь на форуме.
    Если не "пили" -- проигнорируйте тему и не пускайте флуд в эфир.
    Тем более, что сами Вы понятия не имеете как это можно решить...

  13. Бухгалтер Аватар для ZloiBuhgalter
    Регистрация
    21.08.2003
    Адрес
    г.Москва. р-н Выхино (для тактических ракет, точнее - не обязательно)
    Сообщений
    12,863
    kentavr27, сколько готовы выложить за решение?
    Время до завершения бухгалтерской работы есть величина постоянная...
    © Законы Мерфи.


  14. Клерк
    Регистрация
    23.07.2010
    Сообщений
    7
    Цитата Сообщение от ZloiBuhgalter Посмотреть сообщение
    сколько готовы выложить за решение?
    Время, затрачиваемое на данное решение -- около 5-ти минут. Исходя из этого стоимось этой конкретной задачи не может превышать 3$ (4$ c бонусным пивом)
    Но, пока меркантильные люди препирались в этой теме, добрые люди (коим респект и уважение) уже помогли. Так что можете не утруждать себя непосильной работой

    Кстати... решение выглядит примерно так:

    ТекстЗапроса=
    "ВЫБРАТЬ
    | Номенклатура.ЭлементНоменклатура КАК [Товар $Справочник.Номенклатура]
    |ИЗ
    | (ВЫБРАТЬ
    | $КатегорииТоваров.Владелец КАК ЭлементНоменклатура
    | ,1 КАК ПризнакНаличия
    | ИЗ
    | Справочник.КатегорииТоваров КАК КатегорииТоваров
    | ГДЕ
    | $КатегорииТоваров.Категория В (ВЫБРАТЬ val ИЗ #Категории)) КАК Номенклатура
    |СГРУППИРОВАТЬ
    | Номенклатура.ЭлементНоменклатура
    |ИМЕЮЩИЕ
    | СУММА(Номенклатура.ПризнакНаличия) = :КоличествоКатегорий";

  15. Клерк Аватар для Dinchik
    Регистрация
    14.11.2008
    Сообщений
    3,360
    Знающему человеку -- ровно 4 минуты времени.
    Вот меня всегда поражают люди, кот. не знают как что-то сделать, но с точностью до секунды могут сказать, сколько на это потребуется времени.

  16. Клерк
    Регистрация
    09.06.2010
    Сообщений
    38
    Функция КонтрольКатегорий(КонтрТовар)
    Категории=СоздатьОбъект("Справочник.КатегорииТоваров");
    Категории.ИспользоватьВладельца(КонтрТовар);
    СпКатег=СоздатьОбъект("СписокЗначений");
    ФильтрВвидеСписка.Выгрузить(СпКатег);
    Категории.ВыбратьЭлементы();
    Пока Категории.ПолучитьЭлемент() = 1 Цикл
    Если Категории.ЭтоГруппа()+Категории.ПометкаУдаления()>0 Тогда
    Продолжить;
    КонецЕсли;
    НомСтр=СпКатег.НайтиЗначение(Категории.Категория);
    Если НомСтр=0 Тогда
    Продолжить;
    КонецЕсли;
    СпКатег.УдалитьЗначение(НомСтр);
    КонецЦикла;
    Если СпКатег.РазмерСписка()=0 Тогда
    Возврат 1;
    Иначе
    Возврат 0;
    КонецЕсли;
    КонецФункции


    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Товары = Справочник.Товары.ТекущийЭлемент;
    |Группировка Товары;
    |Условие(КонтрольКатегорий(Запрос.Товары)=1);
    |"//}}ЗАПРОС
    ;
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

  17. Клерк
    Регистрация
    03.04.2003
    Адрес
    Вологда
    Сообщений
    208
    (14) не для семерки
    (16) красиво, возьму себе в копилку

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)