Класс "ПрямойЗапрос"

Публикация № 20823

Разработка - Инструментарий разработчика

84
Класс для выполнения запросов к базе данных 1Сv7 (DBF, SQL) с синтаксисом максимально приближенным к синтаксису 1Сv8.

В общем хочу отдать на суд вольным зрителям набор КОП "ПрямойЗапрос" с документацией к нему.
Что он может:
- выполнение запроса на языке подобном 1Cv8
- выполнение запроса на любом формате БД (DBF - SQLite, SQL - ODBCRecordset)
- наличие виртуальных таблиц
- выполнение параметризированных запросов

Что он не умеет:
- не отличает возможные реквизиты объектов метаданных совпадающих с предопределенными реквизитами этих объектов (например: Код, Наименование в справочнике и т.п.)

К классу приложена подробная документация.

Выражаю свою благодарность товарищам:

- тов. berezdetsky за класс AccountsRecordset
- тов. Steban шаблон параметра - это круто
- тов. JohnyDeath за пример ВТ ПодчиненныеДокументы и прочее
- тов. Orefkov за 1sqlite
- тов. Dmitro за практические советы
- всем разработчикам 1С++ за 1С++
- ну и всем остальным кто словом и делом помогал
.

Пример использования:

ТекстЗапроса = "ВЫБРАТЬ
|    Рег.ТекущийДокумент КАК [Документ $Документ]
|    ,Рег.ВидДокумента КАК [Документ_вид $ВидДокумента]
|    ,Рег.Склад КАК [Склад $Справочник.Склады]
|    ,Рег.Номенклатура КАК [Номенклатура $Справочник.Номенклатура]
|    ,Рег.КоличествоНачальныйОстаток КАК ОстатокНач
|    ,Рег.КоличествоОборот КАК Оборот
|    ,Рег.КоличествоПриход КАК Приход
|    ,Рег.КоличествоРасход КАК Расход
|    ,Рег.КоличествоКонечныйОстаток КАК ОстатокКон

|ИЗ $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачПериода
|        ,:КонПериода
|        ,Документ
|        ,ДвиженияИГраницыПериода
|        ,

|        ,(Склад,Номенклатура)
|        ,(Количество)) КАК Рег
";

Запрос = СоздатьОбъект("ПрямойЗапрос");
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьТекстовыйПараметр("
НачПериода",НачГода(РабочаяДата()));
Запрос.УстановитьТекстовыйПараметр("КонПериода",РабочаяДата());
Запрос.РежимОтладки = 1;

ИТЗРезультат = Запрос.Выполнить();
ИТЗ.ВыбратьСтроку();

Официальная версия: 1.8.3 от 30.12.11 г.

Более полная информация на форуме 1С++.

P.S. данная разработка распространяется бесплатно как для частного, так и для коммерческого использования. Поддержка осуществляется при наличии свободного времени. Возможно сотрудничество на предмет внедрения данной разработки в конкретные конфигурации.

84

Скачать файлы

Наименование Файл Версия Размер
Документация и классы v1.8.3 от 30.12.11г.
.rar 231,85Kb
18.01.12
342
.rar 231,85Kb 342 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. JohnyDeath 294 03.07.09 18:11 Сейчас в теме
Одна документация чего стоит!
Завидую таким людям!
2. Ёпрст 1036 03.07.09 18:40 Сейчас в теме
Офигеть!, на такое описалово, у меня бы месяц, не меньше ушло бы... а тут еще и работать надо..
:)
3. CheBurator 3399 03.07.09 18:46 Сейчас в теме
Да, дока приличная... но использовать это все я бы побоялся, автор и сам пишет - "возможны ошибки"... работа, видимо, проделана большая - но в чем смысл тогда при потенциальном наличии ошибок?
4. Ёпрст 1036 03.07.09 18:49 Сейчас в теме
(3) Ошибки со временем исправятся, а вот полученный при работе с данным классом опыт - это бесценно..!
5. vandalsvq 1129 04.07.09 19:25 Сейчас в теме
(3) На счет ошибок могу сказать следующее. Это на самом деле вторая версия. Первая была полностью переписана и в виду этого я и пишу "возможны ошибки". Хотя, на текущий момент из того что я использовал ошибок не было обнаружено.
6. Ish_2 1038 04.07.09 21:05 Сейчас в теме
От Випа недавно первый раз услышал про проект 1с++.
Теперь первый раз увидел пример создания класса в 1с++.
Конечно, здорово !
11. vip 05.07.09 11:57 Сейчас в теме
(6) Если vip'a поменьше банить будете, много чего еще услышишь (увидишь).
12. Ish_2 1038 05.07.09 12:13 Сейчас в теме
(11) Если VIP -жизненный статус , то бан даже полезен.
Подталкивает к размышлениям.
13. vip 05.07.09 12:20 Сейчас в теме
(12) Подталкивает справедливый.
Последний подтолкнул к совсем другим размышлениям.
14. Ish_2 1038 05.07.09 12:24 Сейчас в теме
(13) Подталкивает любой.
Совсем другие размышления и имелись ввиду.
25. rasswet 82 21.07.09 14:11 Сейчас в теме
Запрос = СоздатьОбъект("ПрямойЗапрос");
{F:\TEST\ПРЯМОЙ_ЗАПРОС.ERT(11)}: Неудачная попытка создания объекта (ПрямойЗапрос)
подскажите необходимые условия для запуска. Пытаюсь демо-пример реализовать.
Компоненту загружаю. а дальше? или ссылочку на обработку с примером. я копировал из Вашей шапки код.
2.0.3.4 1cp++ и пробовал 3.01.22
Хочется с этим всем разобраться..
7. vandalsvq 1129 05.07.09 01:23 Сейчас в теме
Добавлена новая версия КОП и обновленная документация.
Готов озвучить часть плана по развитию класса, правда без сроков:
- доработка документации по индексам реализованным в таблицах 1С
- доработка документации по инструкциям языка запросов
- доработка ВТ по бухгалтерским таблицам
- реализация ВТ по регистрам
- реализация ВТ СрезПервых
- реализация различных функций и инструкций
По пути посмотрим что еще будет.
8. acsent 1137 05.07.09 02:37 Сейчас в теме
В чем отличие от обычного запроса через 1С++?
9. vandalsvq 1129 05.07.09 09:08 Сейчас в теме
Отличий много и не очень одновременно :)
1. Источники данных связанные с таблицами 1С указываются без символа $. Например: Справочник.Контрагенты, Документ.Выписка, ДокументСтроки.ПоступлениеМатериалов
2. Возможность поименования таблиц не имеющих метаимен. Например: в тексте запроса можно писать "ЖурналДокументов" вместо _1sjourn, или "Проводки" вместо _1sentry.
3. Можно не использовать конструкцию $ОбщийРеквизит. А вместо $ФлагРегистра необходимо писать Регистр<ИдентификаторРегистра>. Например: $Жур.Комментарий вместо Жур.$ОбщийРеквизит.Комментарий.
4. Внутренние идентификаторы подставляются самостоятельно классом. Более того их необходимо объявлять не через "$", а через ":". Так же для DBF формата БД всегда подставляется 36-тиричное представление, а для SQL (как правило) 10-чное, + если указать модификатор после идентификатора то 36-тиричное. Т.е. конструкции вроде ВидСправочника36 нет, вместо нее :ВидСправочника.ОсновныеСредства~.
5. Наличие ВТ $ПодчиненныеДокументы, $СрезПоследних
6. Урезанные параметры у вирт. значения $ПоследнееЗначение
7. $ПоследнееЗначение как и $Константа возвращают подготовленные значенияю. Т.е. для числа это Numeric(n,m), для даты это DateTime или формат ГГГГММДД, для прочих - CHAR(n) длинной в зависимости от реквизита. (может 1С++ также делает я не помню)
8. Модификаторы текстовых параметров пользователя слегка отличаются от 1С++
Ну кажется все что вспомнил.
10. JohnyDeath 294 05.07.09 11:18 Сейчас в теме
+(9) ты главное забыл сказать. Теперь можно не думать о формате БД, в которой работаешь ;)
15. vandalsvq 1129 05.07.09 13:44 Сейчас в теме
(10) ну да... спасибо что напомнил :)
Кстати по просьбе Donat-а ВТ по регистрам будет аккурат после документации по индексам и инструкциям языка (те которые не описаны до конца).
16. Ёпрст 1036 05.07.09 16:14 Сейчас в теме
(15)
Интересно, сколько времени уходит на документацию ?...Так, для справки.
95. succub1_5 71 12.11.15 17:00 Сейчас в теме
Здравствуйте, создал примерно такой же запрос:
Запрос = СоздатьОбъект("ODBCRecordset");    
    ТекстЗапроса = "
    |SELECT
    |    CASE WHEN РегистрОстаткиТоваров.ВидДокумента = 4111 THEN
    |        '         Отчет кассовой смены №'
    |    ELSE
    |        CASE WHEN РегистрОстаткиТоваров.ВидДокумента = 239 THEN
    |            '         Перемещение №'
    |        ELSE
    |            CASE WHEN РегистрОстаткиТоваров.ВидДокумента = 434 THEN
    |                '         Приходная накладная №'
    |            ELSE
    |                CASE WHEN РегистрОстаткиТоваров.ВидДокумента = 297 THEN
    |                    '         Списание №'
    |                ELSE
    |                    CASE WHEN РегистрОстаткиТоваров.ВидДокумента = 4093 THEN
    |                        '         Оприходование излишков №'
    |                    ELSE
    |                        '         ' + CAST(РегистрОстаткиТоваров.ВидДокумента AS varchar(9))
    |                    END
    |                END
    |            END
    |        END
    |    END + RTRIM(Журнал.DOCNO) + ' от ' + SUBSTRING(РегистрОстаткиТоваров.ПозицияДокумента, 7, 2) + '.' + SUBSTRING(РегистрОстаткиТоваров.ПозицияДокумента, 5, 2) + '.' + SUBSTRING(РегистрОстаткиТоваров.ПозицияДокумента, 3, 2) AS ВидДокумента,
    |    РегистрОстаткиТоваров.ОстатокТовараНачальныйОстаток,
    |    РегистрОстаткиТоваров.ОстатокТовараПриход,
    |    РегистрОстаткиТоваров.ОстатокТовараРасход,
    |    РегистрОстаткиТоваров.ОстатокТовараКонечныйОстаток,
    |    '4!' + CAST(РегистрОстаткиТоваров.ВидДокумента AS varchar(9)) + '!' + RIGHT(РегистрОстаткиТоваров.ПозицияДокумента, 9) 
    |FROM                                
    |    $РегистрОстаткиОбороты.ОстаткиТоваров(:НачДата, :КонДата~, Документ, Движения, , Фирма = :Фирма AND Склад = :Склад AND Товар = :Расшифровка, Товар, ОстатокТовара) AS РегистрОстаткиТоваров
    |LEFT JOIN
    |    _1SJOURN AS Журнал
    |    ON Журнал.IDDOC = RIGHT(РегистрОстаткиТоваров.ПозицияДокумента, 9)
    |ORDER BY
    |    LEFT(РегистрОстаткиТоваров.ПозицияДокумента, 8)
    |";
    
    // параметры запроса
    НачДата = ДатаНач;
    КонДата = ДатаКон;
    СкладИД = "     J   ";
    Расшифровка = "  1DTL   ";
    Запрос.УстановитьТекстовыйПараметр("НачДата", НачДата);
    Запрос.УстановитьТекстовыйПараметр("КонДата", КонДата);
    Запрос.УстановитьТекстовыйПараметр("Фирма", "     0   "); // пустая фирма
    Запрос.УстановитьТекстовыйПараметр("Склад", СкладИД);
    Запрос.УстановитьТекстовыйПараметр("Расшифровка", Расшифровка);
    
    Запрос.Отладка(1);  
    
    Результат = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);   
    Сообщить(Результат.КоличествоСтрок());
    
    Если Результат.КоличествоСтрок() > 0 Тогда            
        Результат.ВыбратьСтроки();
        Пока Результат.ПолучитьСтроку() = 1 Цикл
            Сообщить("" + Результат.ВидДокумента + " - " + Результат.ОстатокТовараНачальныйОстаток + " " + Результат.ОстатокТовараПриход + " " + Результат.ОстатокТовараРасход + " " + Результат.ОстатокТовараКонечныйОстаток);    
        КонецЦикла;
    КонецЕсли;
Показать

Удаленное подключение, с драйверами SQL SERVER все настроено, но почему под Win 7 и 2003 работает без проблем, а под XP выдает ошибку: Meta name parser error: это метаимя разрешить невозможно "$РегистрОстаткиОбороты.ОстаткиТоваров"
17. vandalsvq 1129 05.07.09 16:44 Сейчас в теме
По разному. Но в среднем на документирование уходит около 20-30% времени от времени разработки. Т.е. если я пишу КОП месяц то документирую обычно около недели. Например у меня есть разработка на которую документация составлена на 30%, а уже 108 страниц текста. Думаю что на данный КОП будет в районе 100 страниц в итоге.
18. Ёпрст 1036 05.07.09 16:57 Сейчас в теме
(17) Круто... мне каменты то вломы в модуле постить... а об достойном описаове... эх, не дано :(
19. JohnyDeath 294 05.07.09 18:49 Сейчас в теме
(18) такая же беда. Вот сижу и молча завидую.
У меня на доку уходит больше времени чем на разработку и реализацию. Может потому что это слишком муторно и нудно?
20. vandalsvq 1129 06.07.09 10:25 Сейчас в теме
Вышло обновление 1.01.003.
Доработана документация и исправлены ошибки выявленные мною.

Особенно прошу обратить внимание на советы программистам написанные в документации. Надеюсь они помогут избежать ошибок и вопросов.
21. vandalsvq 1129 14.07.09 14:47 Сейчас в теме
Небольшие новости с фронта. Закончена разработка ВТ РегистрОстатки, РегистрОбороты, РегистрОстаткиОбороты. Осталось доработать документацию и дотестировать. Сегодня вечером будет выложено обновление.
Тестеры добровольцы приветствуются.
22. vandalsvq 1129 14.07.09 15:46 Сейчас в теме
Ну собственно вот и обновление. Сообщаю на период с 15 по 19 меня не будет в сети, поэтому если не буду отвечать не обессудьте. Но в пн как выйду разберусь
23. tok 16.07.09 19:04 Сейчас в теме
Молодец, что еще можно сказать. Вот это дело! Чисто и красиво.
Когда-то хотел нечто подобное попытаться сделать. Очень рад за Ваши труды!
обожаю все, что связанное с 1c++. Обязательно посмотрю.



24. vandalsvq 1129 19.07.09 00:35 Сейчас в теме
Вернулся чуть раньше.... ни уж то все всё проверили? :) Комментариев то только один добавился и тот положительный :)
26. vandalsvq 1129 21.07.09 19:32 Сейчас в теме
Значит ВК 1С++ ты загрузил?
Тогда необходимо подключить классы, для этого почитай тут
http://www.1cpp.ru/docum/icpp/html/classes.html
После подключения КОП можно создавать объект прямой запрос и пробовать писать ;)
27. vandalsvq 1129 22.07.09 07:21 Сейчас в теме
Выложил релиз 1.02.002 от 22.07.09 г. Прошу любить и жаловать. ;)
28. vandalsvq 1129 29.07.09 14:21 Сейчас в теме
Вышла новая версия. Исправлена критическая ошибка при формировании данных по регистрам с использованием документов как границ расчетов.
Добавлена возможность подключения внешних баз данных.
29. artbear 1156 29.07.09 14:46 Сейчас в теме
По собственному опыту разработки различных классов на разных языках/средах знаю, что проще всего писать документацию совместно с тестами для полной гарантии соответствия доки и класса :)
vandalsvq; +1 Ответить
30. vandalsvq 1129 29.07.09 23:24 Сейчас в теме
Ищутся реальные пользователи данного класса.
Интересует где, как, для чего применяете и ваше мнение.
31. vandalsvq 1129 30.07.09 13:47 Сейчас в теме
ИСПРАВИЛ КРИТИЧЕСКУЮ ОШИБКУ
Ошибка происходила при формировании ВТ РегистрОбороты (и как следствие ВТ РегистрОстаткиОбороты) если регистр имеет тип Остатки и БыстраяОбработкаДвижений = 0.

Версию не менял.
32. vandalsvq 1129 03.08.09 22:20 Сейчас в теме
Вышла новая версия. Описание читать в документации или в топике. Брать наверху.
33. vandalsvq 1129 03.08.09 23:32 Сейчас в теме
Исправлена критичная ошибка при формировании ВТ по регистрам. Всем качать обязательно. Описание в документации. Файл в топике.
34. vet7777 515 04.08.09 10:53 Сейчас в теме
примеры типовые добавь в конце описания, например, получение остатка по счету на определенную дату и по определенному субконту.
практикум так сказать, чтобы народ быстрее освоил.
35. vandalsvq 1129 04.08.09 12:12 Сейчас в теме
(34) для получения остатки по счетам надо чтобы ВТ БИОстатки появилась.
А вот по регистрам вполне возможно и покажу что нибудь. Может через недельку напишу какой нить простенький отчет, или конфу тестовую выложу когда причешу ее нормально.
36. vandalsvq 1129 10.08.09 10:13 Сейчас в теме
Выложил версию 1.03.001 (beta).
Почему бета...
1. Проведены работы по оптимизации времени подготовки запроса. В связи с чем необходимо более тщательное тестирование
2. Вирт. таблица БИОстатки для SQL написана "на коленке" по аналогии с DBF. При этом DBF оттестирована и проведены работы по оптимизации времени выполнения запроса, для SQL подобных работ еще не было (планируется исследовать на неделе).
Собственно вот
37. vandalsvq 1129 10.08.09 13:51 Сейчас в теме
Обновил файл релиза 1.03.001 (бета). Теперь уже почти не бета версия, а похожа на стабильный релиз.
Отладил и поработал над оптимизацией выполнения запроса в SQL формате БД (спасибо тов. berezdetsky за его КОП AccountRecordset, без него было бы гораздно сложнее).
38. vandalsvq 1129 12.08.09 23:09 Сейчас в теме
Обновил планируемый релиз 1.03.001 (beta). Проведены некоторые работы по оптимизации времени подготовки запроса. Файл брать в топике.
39. vandalsvq 1129 17.08.09 11:45 Сейчас в теме
Выложена версия 1.03.002 от 17.08.09 г.
Добавлена бета-версия ВТ БИОборотыДтКт. Незначительные изменения по оптимизации подготовки запроса.

Хочу сказать для всех кто сомневается: версия 1.03.002 имеет статус "бета" исключительно из-за добавления в подготовку запроса виртуальных таблиц для работы с бухгалтерской подсистемой. В остальном же версия 1.03.ххх имеет ряд существенных улучшений по сравнению с версией 1.02.ххх и рекомендуется к использованию.
40. vandalsvq 1129 18.08.09 13:17 Сейчас в теме
Выложена версия 1.03.003 от 18.08.09 г.
Добавлены новые функции языка запроса: Лево(), Право(), СокрЛ(), СокрП(). Некоторые приватные методы реализованы как публичные с целью возможности разбора виртуальных таблиц вне класса.

Пы.сы. Если на форуме 1С++ активность в теме про класс хоть какая-то. То здесь я не вижу не активности, ни заинтересованности. Что не так? Или разработка показалось "не особо нужной".... странной даже.
41. vandalsvq 1129 22.08.09 20:32 Сейчас в теме
Выложил обновление. Исправлена ошибка связанная с подготовкой запроса для dbf формата базы данных если в запросе участвовали объекты с наличием символа "_" в виде объекта (справочник, документа, регистр).
42. vandalsvq 1129 02.09.09 17:39 Сейчас в теме
Новая версия: 1.03.004. Смотреть в документацию и продолжать пробовать. Если смельчаки конечно же имеются ;)
43. vandalsvq 1129 09.09.09 15:31 Сейчас в теме
Вышла новая версия. 1.03.005.
Добавлена ВТ БИОбороты, существенно проработаны БИОстатки и БИОборотыДтКт.
Исправлены другие мелкие недочеты и недоделки.
44. vandalsvq 1129 16.09.09 19:14 Сейчас в теме
Класс заменен без изменения версии. Небольшой багофикс некоторых косячков.
45. vandalsvq 1129 27.09.09 23:09 Сейчас в теме
Вышла новая версия. Множество изменений. В том числе пара достаточно нужных и "полезных".

Кстати очень интересным получилась возможность использования данного класса в совокупности с решением "ПоставщикДанных".
Информацию о данной "разработке" можно "подсмотреть" на 1С++.
http://www.1cpp.ru/forum/YaBB.pl?num=1248941896
46. CheBurator 3399 28.09.09 02:09 Сейчас в теме
Очень приветствуется наличие в составе "инсталлятора" примеров каких-нибудь типовых отчетов (ну, например, для Типовой ТиС) - остатки ТМЦ, ведомость по остаткам ТМЦ и т.д. - переделанных с учетом исапользования данного класса - будет все нагляднее...
49. vandalsvq 1129 28.09.09 10:42 Сейчас в теме
(46)
Инсталлятор в данном случае получиться "неуниверсальным". Те кто пользуются классами уже имеют определенную иерархию, те кто не пользуется, велика вероятность что не будут. Я думаю достаточно "демо-конфигурации" и небольшого "фака" в документации как подключить, как использовать и т.д. Это я напишу. Спасибо за идею ;)
(47)
Табличное поле - это интерфейсный объект реализованный в 1С++ который позволяет на форме отображать табличное поле во многом идентичное 8-ке. Вообще примеры использования ТП я встречал и на данном ресурсе. Можно поискать. Если интересно то скорее надо уже на форум 1С++
(48)
Странно слышать про глюки. Насколько я использую 1С++ (а это практически все что в ней есть) большинство, если не почти все уже пофиксены.
Что касается примеров. В ближайшее время для ТиС я наверное перепишу пару отчетов. К сожалению текущая загруженность не позволяет уделять большое внимание "непроизводственным" вопросам :). Время, время, время.
Кстати что касается документации, то я думаю в данной разработке вопросов особых не должно быть, очень подробная дока получилась.
50. CheBurator 3399 28.09.09 10:48 Сейчас в теме
(49) спсб за ответ.
по (46) те кто уже пользуется - они не будут, а те кто заинтересован с нуля - будут. А то получается - 1.почему так мало откликов и 2.кто не использовал - тому и не надол, а кто использовал они и так все знают... ;-)
по (48) речь не про глюки 1С++, а про прикладные выкладываемые решения.
51. vandalsvq 1129 28.09.09 12:09 Сейчас в теме
(50) реклама - двигатель торговли ;). А на мой взгляд хорошего фака+демо конфигурация будет достаточно. ;)
47. CheBurator 3399 28.09.09 02:17 Сейчас в теме
ух, чувствую надо плотно садится на прямые запросы и поставщика данных... а "табличное поле" - это что?
48. CheBurator 3399 28.09.09 02:21 Сейчас в теме
просто вдогонку: очень хочется чтобы работа, которую проделывает автор была "завершена", т.е. сабж "зафксирован" (с описанием известных багов и фич), существовала содержательная документация и т.д. - то есть чтобы был ПРОДУКТ. Отрадно видеть, что автор - делает "правильно". От использования возможностей 1С++ лично меня удерживают тоько небрежности и глюки, встреченные в том, что пришлось использовать... Простба побоьше примеров (конфигурация?)
52. vandalsvq 1129 02.12.09 09:33 Сейчас в теме
Выложена версия 1.05.001 от 02.12.09 г. Кому надо смотреть.
53. vandalsvq 1129 07.12.09 18:13 Сейчас в теме
Выложена версия 1.05.002 от 07.12.09 г.
54. vandalsvq 1129 10.05.10 23:15 Сейчас в теме
Выложена версия 1.06.005 от 11.05.10 г.
55. vandalsvq 1129 11.05.10 17:29 Сейчас в теме
Выложена версия 1.06.006 от 11.05.10 г.
Брать обязательно.
56. vandalsvq 1129 30.05.10 10:56 Сейчас в теме
Давненько я здесь не появлялся. В общем очень много изменений произошло. Как всегда отражаю в топе только последние. А вообще с версии 1.06.006 вот полный список изменений:

1.07.005 от 28.05.10 г.
- Исправлена ошибка при расчете конечной даты ВТ РегистрОбороты (для регистра с типом Обороты) если дата совпадает с датой начала периода хранения оборотов.

1.07.004 от 24.05.10 г.
- Исправлена ошибка подстановки предопределенных текстовых параметров с количеством слов разделенными запятыми более 2-х.

1.07.003 от 21.05.10 г.
- Исправлена ошибка подстановки текстовых параметров с модификаторами.
- Исправлена «плавающая» ошибка парсинга ВТ без указания параметров.

1.07.002 от 18.05.10 г.
- Исправлена ошибка при формировании ВТ РегистрОстатки (по регистру с типом «Остатки») если дата получения остатков очень близка к ТА.
- Исправлена ошибка при формировании ВТ РегистрОбороты (по регистру с типом Обороты) если граница окончания получения оборотов близка к ТА. Оптимизирован расчет границ для сбора данных.
- Добавлена возможность обратной совместимости с версией 1.06.ххх. Все параметры ВТ не являются обязательными. Подставляются значения по умолчанию.

1.07.001 от 14.05.10 г. (beta)
- Добавлен новый параметр «Соединения» виртуальной таблицы РегистрОстатки.
- Добавлен новый параметр «Соединения» виртуальной таблицы РегистрОбороты.
- Добавлен новый параметр «Соединения» виртуальной таблицы РегистрОстаткиОбороты.
- Добавлен новый параметр «Соединения» виртуальной таблицы БИОстатки.
- Добавлен новый параметр «Соединения» виртуальной таблицы БИОборотыДтКт.
- Добавлен новый параметр «Соединения» виртуальной таблицы БИОбороты.
- Добавлен новый параметр «Соединения» виртуальной таблицы БИОстаткиОбороты.
- Возможна потеря обратной совместимости по всем измененным виртуальным таблицам с более ранними версиями.

1.06.007 от 14.05.10 г.
- Исправлена ошибка виртуальной таблицы РегистрОбороты при формировании по регистру с типом «Обороты» и периодичностью Декада.
- Исправлена ошибки формирования виртуальных таблиц по бухгалтерской подсистеме при наличии более 1-го плана счетов.
57. vandalsvq 1129 30.05.10 10:57 Сейчас в теме
Ну, начнем-с?
Предлагаю задавать вопросы относительно использования класса здесь.
58. orefkov 1974 01.06.10 13:24 Сейчас в теме
(57)
Узок был их круг. Страшно далеки они были от народа (с)
59. vandalsvq 1129 01.06.10 15:06 Сейчас в теме
(58) да уж... тут активность близка в нулю
60. cleaner_it 238 01.08.10 12:35 Сейчас в теме
Крутая вещь! Попробую применить в http://infostart.ru/public/72778, потом напишу что получилось:) 134 страницы документации за вечер не освоить:)
61. vandalsvq 1129 03.08.10 10:57 Сейчас в теме
(60) если решишь пользоваться бери с форума 1С++ новую версию. А то тут давненько не обновлял. И потом расскажи об успехах :).
64. cleaner_it 238 03.08.10 12:38 Сейчас в теме
(61) На работе до сих пор пользуюсь версией 2.5, нареканий нет:) На сайте последняя 3.2.1.0, конечно ее получше использовать в новых наработках (ошибок много пофиксено). На работе боязно, работает - не трогай:) Только после многократного тестирования:)
65. vandalsvq 1129 03.08.10 13:56 Сейчас в теме
(64) последняя счас не 3.2.1.0, а 3.2.1.17. Исправлений там на самом деле много. Переезд в принципе безболезнен, а вот возможности... особенно в части табличного поля.
67. cleaner_it 238 04.09.10 16:17 Сейчас в теме
(61) Результаты:

VFPOLEDB
- Для DBF делал развертку виртуальной таблицы остатков (итоги+движения). Потратил 2 дня на разбор полетов

Класс ПрямойЗапрос
- Для DBF написал запрос. Потратил 1 час, вместе с чтением документации на 1sqlite и класс ПрямойЗапрос. Скорость выполнения увеличилась даже визуально!

Итог: класс использовать нужно! Рекомендую всем, кто не хочет мучений при написании прямых запросов к DBF

На заметку: Конструктор qryConsole по умолчанию ставит между параметром и модификатором пробел ":ДатаПолученияОстатков ~", при использовании класса текст запроса необходимо править - убирать пробел: ":ДатаПолученияОстатков~"
62. anton.fly7 146 03.08.10 11:21 Сейчас в теме
как сделать чтоб на DBF базе работала не через SQLite а через VFPOLEDB? такое вообще возможно?
63. anton.fly7 146 03.08.10 11:32 Сейчас в теме
(62) разобрался
нашел 1sqlite.dll, вопрос снимается )
66. cleaner_it 238 04.09.10 15:50 Сейчас в теме
(0) а автоматический подбор индексов - твоя работа или Orefkov?
Выбран индекс ACDATETIM: DTOS(DATE)+TIME+IDDOC


А вообще - уже очень-очень нравится, пользоваться классом удобно:)
69. vandalsvq 1129 06.09.10 15:50 Сейчас в теме
(66) Подбор индексов - это работа 1sqlite, т.е. Саши Орефкова.
(67) по поводу модификатора посмотрю чтобы пробелы не учитывались.
(68) я на 1С++ писал что есть некоторые недоработки.
Цитата: "В частности Жур.$ОбщийРеквизит.ИмяРеквизита можно писать как $Жур.ИмяРеквизита, а $nolock вообще отсутствует везде.
Ну и сравнение "WHERE $Жур.ДатаДокумента"... тут такое дело что сравнивать left(date_time_iddoc,8) (для SQL будет так) не самое хорошее решение. Проще после кода поставить проверку, если это ПрямойЗапрос.ЭтоSQL = 1 то данную часть заменить на $Жур.ПозицияДокумента. Т.е. ПрямойЗапрос.Текст = СтрЗаменить(ПрямойЗапрос.Текст,"WHERE $Жур.ДатаДокумента","WHERE $Жур.ПозицияДокумента");". 8-)
68. cleaner_it 238 05.09.10 08:55 Сейчас в теме
Небольшой пример для тех, кто только начинает переходить на ПрямойЗапрос:

	ТекстЗапросаДвижений =
	"SELECT 
	|	  $Жур.ТекущийДокумент КАК [Документ $Документ]
	//|	  Журнал.IDDOC as [Документ $Документ]
	|	, $Жур.ВидДокумента КАК Документ_вид
	//|	, Журнал.IDDOCDef as Документ_вид
	|	, $Жур.ДатаДокумента КАК [ДатаДок $Дата]	
	//|	, "+?(БазаSQL = 0,"Журнал.DATE","$НачалоПериода.День(Журнал.DATE_TIME_IDDOC)")+" as ДатаДок
	|	
	|	, $СпрДоговора.ТекущийЭлемент КАК [Договор $Справочник.Договоры]
	//|	, СпрДоговора.ID КАК [Договор $Справочник.Договоры]
	|	, $СпрКонтрагенты.ТекущийЭлемент КАК [Покупатель $Справочник.Контрагенты]
	//|	, СпрКонтрагенты.ID КАК [Покупатель $Справочник.Контрагенты]
	|
	|	, $НаименованиеРегистра.ВидДвижения КАК ПриходРасход
	//|	, НаименованиеРегистра.DEBKRED КАК ПриходРасход
	|
	|	, НаименованиеРегистра.Фирма КАК [Фирма $Справочник.Фирмы]
	|	, НаименованиеРегистра.ВидДолга КАК [ВидДолга $Перечисление.ВидыДолга]
	|	, НаименованиеРегистра.КредДокумент КАК [КредДокумент $Документ]
	|	, НаименованиеРегистра.ДокументОплаты КАК [ДокументОплаты $Документ]
	|	, НаименованиеРегистра.КодОперации КАК [КодОперации $Перечисление.КодыОпераций]
	|
	|	, НаименованиеРегистра.СуммаРуб*(1 - $НаименованиеРегистра.ВидДвижения * 2) КАК СуммаВзаиморасчетовВВалютеБухУчета
	//|	, $НаименованиеРегистра.СуммаРуб*(1 - НаименованиеРегистра.DEBKRED * 2) КАК СуммаВзаиморасчетовВВалютеБухУчета
	|
	|	, Жур.$ОбщийРеквизит.Автор  КАК [Автор $Справочник.Пользователи]
	|	, Жур.$ОбщийРеквизит.Проект КАК [Проект $Справочник.Проекты]
	|	, Жур.$ОбщийРеквизит.ЮрЛицо КАК [ЮрЛицо $Справочник.СвоиЮрЛица]
	|
	|FROM Регистр."+НаименованиеРегистра+" КАК НаименованиеРегистра
	//|FROM $Регистр."+НаименованиеРегистра+" КАК НаименованиеРегистра
	|	INNER JOIN ЖурналДокументов КАК Жур ON $НаименованиеРегистра.ТекущийДокумент = $Жур.ТекущийДокумент
	//|	INNER JOIN "+?(БазаSQL = 0,"1SJOURN","_1SJOURN")+" AS Журнал "+?(БазаSQL = 0,"","With (NOLOCK)")+" ON НаименованиеРегистра.IDDOC = Журнал.IDDOC
	|	LEFT JOIN Справочник.Договоры КАК СпрДоговора ON $СпрДоговора.ТекущийЭлемент = НаименованиеРегистра.Договор
	//|	LEFT JOIN $Справочник.Договоры КАК СпрДоговора ON СпрДоговора.ID = $НаименованиеРегистра.Договор
	|	LEFT JOIN Справочник.Контрагенты КАК СпрКонтрагенты ON $СпрКонтрагенты.ТекущийЭлемент = СпрДоговора.ParentExt
	//|	LEFT JOIN $Справочник.Контрагенты КАК СпрКонтрагенты ON СпрКонтрагенты.ID = СпрДоговора.ParentExt
	|
	|WHERE $Жур.ДатаДокумента BETWEEN :ВыбНачПериода AND :ВыбКонПериода~
	//|WHERE ("+?(БазаSQL = 0,"Журнал.DATE","Журнал.DATE_TIME_IDDOC")+" BETWEEN :ВыбНачПериода"+?(БазаSQL = 0,"~~","")+" AND :ВыбКонПериода"+?(БазаSQL = 0,"~~","~")+")
	|
	|";
Показать


В примере показано, что меняется. Старый вариант запроса для DBF (VFPOLEDB ) и SQL закомментирован
70. cleaner_it 238 06.09.10 16:03 Сейчас в теме
ПрямойЗапрос.Текст = СтрЗаменить(ПрямойЗапрос.Текст,"WHERE $Жур.ДатаДокумента","WHERE $Жур.ПозицияДокумента");"

обязательно сделаю такую проверку

А по поводу $nolock я прочитал в твоей документации, что происходит подстановка автоматическая для SQL, а для 1sqlite это и не нужно. Или я не так понял?

Ну, раз уж на то пошло - можно вернуть знак $ перед регистрами движений? Не очень удобно править руками запрос qryConsole, первый раз я даже долго искал в своем запросе ошибку (спасибо Орефкову за консоль запросов 1sqlite, помогла разобраться)
71. cleaner_it 238 07.09.10 04:18 Сейчас в теме
(70) больше не буду дублировать:) дальнейшая переписка на http://www.1cpp.ru/forum/YaBB.pl?num=1246429625
72. BlueWind 27.11.10 19:16 Сейчас в теме
Поставлена задача оживить большую распределенную базу на бухгалтерской компоненте - центральная SQL и периферийные на DBF. С этой целью начал исследование возможностей 1с++ и класса ПрямойЗапрос... Начать было сложновато, но уже что-то получается, и результаты очаровывают настолько, что я для себя решил, что когда заброшу 1с и займусь скульптурой, первым делом наваяю памятник человеку, придумавшему колготки (это просто было уже решено раньше на основе весенних впечатлений), и сразу за ним - бюсты создателей 1с++ и этого класса! Ибо это - вещь!! Спасибо vandalsvq и за класс и за основательную документацию! Похоже, я буду активно его использовать..

Использую КОП ПрямойЗапрос 1.7.21, 1с++ 3.2.3.1

Вот такой запрос:
ТекстЗапроса = "
|ВЫБРАТЬ *
|ИЗ
|$БИОстатки.Основной(:КонДата~,, (Подразделения, Товары), (Количество, Сумма), ((Субконто1 = :ВыбПодразделение) И (Счет = :Счет411)),)
|КАК Би
|";

дает ошибку "В метод необходимо передавать непустые объекты типа метаданных". Если между идентификаторами видов субконто убрать пробел - все нормально. Если вместо (Подразделения, Товары) задать через пробел (Субконто1, Субконто2) - ошибки не возникает. В документации по $БИОстатки, впрочем, так и указано: "Т.е. например (Субконто1, Субконто3) или (Контрагенты,Договоры).", но при возможности влияние пробела хорошо было бы исключить..

В документации по $БИОстатки, Параметр КонецПериода сказано: "Параметр со значением даты или документа, до которого необходимо рассчитать остатки (условие <, т.е. не входит в сумму остатков). " Здесь закрались сомнения, и экспериментально установлено, что "<" справедливо для документа (т.е. остатки на начало документа), а для даты верно "<=", т.е. на конец дня.

Хотелось бы еще при выполнении запросов классом вместо "Выполняется обработка" в строке состояния наблюдать информацию именно о выполнении запроса с указанием даты - что-то вроде "Расчет итогов: 27.11.10" по аналогии с 1с..
73. BlueWind 27.11.10 22:16 Сейчас в теме
(72) По поводу параметра КонецПериода разобрался - если в запросе параметр КонецПериода типа Дата установлен с модификатором (:КонДата~) тогда остатки рассчитываются на конец дня, если без модификатора (:КонДата) - тогда на начало дня. В документации про влияние модификатора сказано, но хорошо бы уточнить - каким образом.

И еще вопрос: als и ints файлы для КОП ПрямойЗапрос существуют?
74. mybracho 23.11.11 11:20 Сейчас в теме
Ребята, скиньте ссылку где взять построитель для прямого запроса
75. iksanova 19.12.11 06:58 Сейчас в теме
Документация достаточно большая.
Пользоваться своим классом - это круто!
Заинтересовалась!
76. nll.jojo 20.01.12 15:21 Сейчас в теме
77. andrey314 11 22.09.13 14:37 Сейчас в теме
Круто. Понимаю что наглею, но было бы еще круче если бы в составе документации были примеры для работы с БИ.
78. vandalsvq 1129 22.09.13 15:38 Сейчас в теме
Данный вопрос лучше всего задать в теме на форуме 1С++ (см. тут - http://www.1cpp.ru/forum/YaBB.pl?num=1285352210). Я достаточно сильно от 7.7 отошел и очень много проектов которые сейчас веду, чтобы браться за помощь :).
79. sss999 38 12.11.13 08:48 Сейчас в теме
Круто конечно,но если бы мне сказали как,я бы весь синтаксис переделал под восьмерочный,ну не понятно нафига было делать какой то другой синтаксис,как будто людям делать нечего как сидеть и изучать новые языки.Документацию такую же делать нужно как и в 1с 8,при том вполне возможно даже выпустить небольшую книженцию страниц 50 и сделать небольшие денежки на этом проекте,опять же если синтаксис приведете к восьмерочному и уберете баги.Не нужен весь язык запросов,хотя бы основное для выборок.
81. vandalsvq 1129 16.11.13 18:39 Сейчас в теме
(79) sss999, конкрентной цели монетизации проекта не было, я делал для своих нужд, а то что синтаксис такой, за основу был взять синтаксис 1C++. На тот момент достаточно распространенный среди знатоков прямых запросов. Синтаксис к 8-му приводить не вижу смысла, вот буквально пару дней назад пользовался разработкой для написания сложных сборов данных и знаешь, мне нравится результат который получился и процесс не вызвал больших проблем. Не хватает конструктора - вот что надо было бы точно.
По документации: если посмотришь то увидишь что документация там точно за 50 страниц выпадает, не хватает конкретных примеров - это да, но описание я считаю минимально достаточным.
И еще по поводу синтаксиса, я не вижу слишком больших отличий от 8-ки. Необходимость переименования и определения вида в запросе... ну что ж... А двоеточния или @ - очень сильно нужны. Например: в коде Т.ТекущийЭлемент = :Ссылка точно видно что "Ссылка" это именно текстовый параметр который надо подставить соответствующим образом. А в коде Т.ТекущийЭлемент = @Ссылка понятно что "Ссылка" это подставляемый параметр который необходимо задавать отличным от предыдущего примера видом, и при этом понятно что запрос параметризированный и выполнение его происходит отлично от обычного запроса.
80. sss999 38 12.11.13 09:38 Сейчас в теме
Там в запросе можно обойтись и без всяких там долларов,двоеточий и квадратных скобок,все это можно отследить,а так я смотрю и не понимаю что это за конструкция в скобках что за синоним такой с пробелом и долларом и еще и с точкой.И еще тут же написать минимальную инструкцию,или сделать два варианта расширенный синтаксис и краткое начало работы с краткой справкой.
82. sss999 38 18.11.13 08:18 Сейчас в теме
А подскажите как подключить ваш класс
83. sss999 38 18.11.13 08:27 Сейчас в теме
А на форуме 1cpp там помойка ,два дня нужно рыться что бы найти что то,больше половины старья которое уже не актуально ввиду выхода новых версий,а норм никто не может написать инструкции.
84. sss999 38 26.02.14 10:32 Сейчас в теме
не подскажешь что за ошибка?Я посмотрел выходит в момент создания объекта 0,что за объект такой?в этом тексте типобъекта =0,я посмотрел он передается через параметр,а там стоит и вправду 0.
// определяем время подготовки запроса
ВремяПодготовки = _GetPerformanceCounter();

// создаем объект для получения результата запроса
ПолучательЗапроса = СоздатьОбъект(ТипОбъекта);

ПрямойЗапрос::Выполнить(Число ТипОбъекта=0, Строка ТекстВыполнения=, Число БезПодготовки=0) : Неудачная попытка создания объекта
ПолучательЗапроса = СоздатьОбъект(ТипОбъекта);
{C:\Base77\База\ПрямойЗапрос.ert(13386) }

тЗапроса = Запрос.Выполнить(0);
{F:\SQLЗАПРОС2.ERT(183)}: ПрямойЗапрос::Выполнить(Число ТипОбъекта=0, Строка ТекстВыполнения=, Число БезПодготовки=0) : Неудачная попытка создания объекта
ПолучательЗапроса = СоздатьОбъект(ТипОбъекта);
{C:\Base77\База\ПрямойЗапрос.ert(13386) }
85. sss999 38 26.02.14 10:48 Сейчас в теме
ПрямойЗапрос::СоздатьОбъектыЗапроса(Строка ПутьКБазеSQL=:memory:) : Неудачная попытка создания объекта
БазаSQLite = СоздатьОбъект("SQLiteBase");
{C:\Base77\База\ПрямойЗапрос.ert(1057) }

Запрос = СоздатьОбъект("ПрямойЗапрос");
{F:\SQLЗАПРОС2.ERT(146)}: ПрямойЗапрос::СоздатьОбъектыЗапроса(Строка ПутьКБазеSQL=:memory:) : Неудачная попытка создания объекта
БазаSQLite = СоздатьОбъект("SQLiteBase");
{C:\Base77\База\ПрямойЗапрос.ert(1057) }

Хотя dll лежит sqllite
86. vandalsvq 1129 26.02.14 10:52 Сейчас в теме
(85) sss999, посмотри, может в коде при выполнении запроса вызываешь Выполнить с неправильными параметрами. Потому что 0 может быть только если он извне пришел именно так. А вообще там должно быть ИндексированнаяТаблица или ТаблицаЗначений. В общем в документацию посмотри.
Что же касается sqlite, может версия компоненты старая? Может не загрузилась ВК? Отдельно попробуй объект создать, проходит/нет.
87. sss999 38 26.02.14 11:35 Сейчас в теме
отредактировал,обработку твою,запрос отработал.Для дбф.
Текст заменил так
было:
ИначеЕсли ЭтоSQL = 0 Тогда
ЗапросSQLite.Отладка(РежимОтладкиЗапроса);
ЗапросSQLite.ВыполнитьЗапрос(ТекстЗапроса,ПолучательЗапроса=);
КонецЕсли;
стало:
ИначеЕсли ЭтоSQL = 0 Тогда
ЗапросSQLite.Отладка(РежимОтладкиЗапроса);
ПолучательЗапроса=ЗапросSQLite.ВыполнитьЗапрос(ТекстЗапроса);
КонецЕсли;
и перед этим поменял
ПолучательЗапроса = СоздатьОбъект(ТипОбъекта);
заменил на
ПолучательЗапроса=0;
89. vandalsvq 1129 26.02.14 12:33 Сейчас в теме
(87) sss999, в итоге у тебя всегда результат будет в ИТ. Смотри сам, но проблема была не в коде класса, а в твоем коде.
90. sss999 38 26.02.14 14:19 Сейчас в теме
(89) ну вот так консоль захотела только через такой код работать,а обработка работает через старый код,проблемы в консоли как я понял
88. sss999 38 26.02.14 12:31 Сейчас в теме
а то что не создавался СоздатьОбъект("SQLiteBase"); это видно проблема консоли,открыл другую обработку в которой объект создается и консоль заработала.
91. sss999 38 26.02.14 14:20 Сейчас в теме
а зачем создается объект такой? ПолучательЗапроса = СоздатьОбъект(ТипОбъекта); у меня в типеобъекта стояло 0 и не отрабатывало через консоль
92. vandalsvq 1129 26.02.14 15:45 Сейчас в теме
(91) sss999, я не совсем понимаю про какую консоль ты говоришь? А в "СоздатьОбъект(ТипОбъекта)" не совсем понятно почему ноль приходит, туда должна приходить строка, с указанием типа объекта для получения результата запроса. Вероятнее всего проблема в вызове "Выполнить", посмотри параметры согласно документации, сравни с параметрами которые передаются, там ошибка.
93. korpas 03.06.15 13:37 Сейчас в теме
При попытке выполнить запрос появляются сообщения:

Процедура не обнаружена (вирт)
Процедура не обнаружена (я)
и
Внимание! Инициализация класса: ПрямойЗапрос закончилась неудачно!

В файле ПрямойЗапрос.ert не вижу, где объявляются процедуры вирт() и я()...

P.S. Видимо надо обновить 1cpp до 3ей версии...
94. vandalsvq 1129 30.06.15 09:31 Сейчас в теме
(93) korpas, советую за более актуальной версией, а также сборками с необходимыми dll и другими компонентами ходить на 1cpp.ru. В частности тут - http://www.1cpp.ru/forum/YaBB.pl?num=1273512019, выкладываются последние сборки. Правда давненько их не было и я не уверен что с моим авторством еще будут. Но кто знает. Сейчас функционал весьма стабилен и очень даже работоспособен.
В общем, ищите инфу на 1С++, тут я редко пишу ответы.
96. ManyakRus 291 31.03.16 17:47 Сейчас в теме
маленький глюк:
В $РегистрОстаткиОбороты.ОстаткиТМЦ() Условия приходится писать в одной строке, с новой строки выдаёт ошибки
Meta name parser error: не указан параметр ":rg_405"
97. Mikeware 9 07.04.16 16:24 Сейчас в теме
Хочу совета!
ВЫБРАТЬ
    Рег.ТекущийДокумент КАК [Документ $Документ]
    ,Рег.ВидДокумента КАК [Документ_вид $ВидДокумента]
    ,Рег.Фирма КАК [Фирма $Справочник.Фирмы]
    ,Рег.Договор КАК [Договор $Справочник.Договоры]
    ,Рег.СуммаРубНачальныйОстаток КАК ОстатокНач
    ,Рег.СуммаРубОборот КАК Оборот
    ,Рег.СуммаРубПриход КАК Приход
    ,Рег.СуммаРубРасход КАК Расход
    ,Рег.СуммаРубКонечныйОстаток КАК ОстатокКон
,СпрФирмы.ТекущийЭлемент КАК [ФирмаСпр ]
ИЗ $РегистрОстаткиОбороты.Покупатели(:НачПериода
        ,:КонПериода
        ,Документ
        ,ДвиженияИГраницыПериода
        ,        ,(Фирма,Договор)
        ,(СуммаРуб)) КАК Рег

ЛЕВОЕ СОЕДИНЕНИЕ $Справочник.Фирмы   Как Фирмы 
ПО   Рег.Фирма= Фирмы.id
Показать

дает ошибку
near "AS": syntax error


Собственно, менял условия соединения и на ЛЕВОЕ СОЕДИНЕНИЕ $Справочник.Фирмы Как Фирмы
ПО Рег.Фирма= $Фирмы.ТекущийЭлемент, и т.п. - та же ошибка.
Классы обновил на версию от 22.05.13
в режиме отладки выдает текст, который визуально ошибок не имеет
без левого соединения (сама ВТ) работает....
база- ДБФ.
98. vandalsvq 1129 07.04.16 20:58 Сейчас в теме
(97) Mikeware, отправь на почту или в скайп текст отладочного режима, хочу посмотреть, поскольку так с ходу не видно в чем проблема может быть.
99. Mikeware 9 08.04.16 16:53 Сейчас в теме
(98) спасибо, я сам разобрался. накосячил с типизацией. она немного отличается от "классической", привычной в одбсшных...
Оставьте свое сообщение

См. также

ФФД 1.05 с драйверами Атол v10 3

Инструменты и обработки Программист Архив с данными v7.7 1cv7.md Windows Розничная торговля Абонемент ($m) Разработка внешних компонент

Подключение кассы / фискального регистратора к 1С 7.7 через драйвер Атола v10.

1 стартмани

02.08.2019    1242    4    phsin    18       

Внешняя компонента Game.dll (таймер, ГСЧ, захват клавиатуры) 3

Инструменты и обработки Программист Архив с данными v7.7 Абонемент ($m) Разработка внешних компонент

Внешняя компонента для 1С 7.7 для работы с таймером, генератором случайных чисел и для захвата клавиатуры.

1 стартмани

29.04.2019    1681    1    Palmer1976    0       

Работа с пробитыми чеками по БД Атол 4

Инструменты и обработки Программист Архив с данными v7.7 1cv7.md Windows Кассовые операции Абонемент ($m) Разработка внешних компонент ККМ

Получение данных о пробитых чеках по ККМ Атол драйверов версии 8 на ОФД СБИС.

1 стартмани

13.07.2018    4810    1    pakko    7       

Разработка игр на языке 1С с использованием Active-X компоненты (собственная разработка) 10

Инструменты и обработки Программист Архив с данными v7.7 v8 Россия Windows Абонемент ($m) Разработка внешних компонент

Написанная Active-X компонента встраивается на форму обработки 1С (тестировалось на 1С 8.0, 8.1, 8.2, 8.3 не управляемые формы, 1С 7.7.). Компонента предназначена для моделирования игрового поля (вывод, движение спрайтов - фреймов, обработка коллизий, управление спрайтами-фреймами и т.д.) при разработки логики игры на встроенном языке 1С. Приложен пример обработки в которой реализована игра "Бита".

5 стартмани

04.01.2018    9544    2    protexprotex    34       

Оболочка для работы с последними драйверами ККМ АТОЛ для 1С 7.7, 8.1 18

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v77::ОУ 1С7:ТиС Кассовые операции Абонемент ($m) Разработка внешних компонент ККМ

Внешняя компонента - оболочка для работы в среде 1С 7.7 или 1С 8.1 с последними версиями драйверов ККМ от АТОЛ. Поддерживаются драйвера x32 начиная с версии 9.11. Присутствует внешняя обработка для полноценной работы с данными драйверами (поддержка ревизий 2.0, 2.1, 2.2, поддержка протокола ОФД 1.0, 1.0.5, 1.1).

1 стартмани

09.08.2017    30276    269    asdfghgghjdhg    103       

Подключение Онлайн кассы Штрих М к 1С 7.7 5

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Кассовые операции Розничная торговля Абонемент ($m) Разработка внешних компонент ККМ

Подключение онлайн кассы Штрих М к любой конфигурации 1С 7.7. Показаны основные приемы работы с драйвером. Обработка представляет из себя набор готовых функций для встраивания в свою конфигурацию: ИнициализироватьФР(); ПодключитьФР(); ОтключитьФР(); ОткрытьСмену(); ЗакрытьСмену(); НапечататьЧек(); АннулироватьЧек(); СнятьХОтчет().

1 стартмани

08.05.2017    19362    74    crimeait    2       

Сравнение конфигураций на платформе 1Сv7.7 4

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Абонемент ($m) Инструментарий разработчика

Обработка позволяет сравнивать структуру полей разных баз данных на платформе 1Сv7.7, что, в случае объединения конфигураций, поможет избежать разрушения базы.

1 стартмани

12.11.2016    7518    11    citicat    7       

1sqlite reborn 34

Инструменты и обработки Программист Архив с данными v7.7 1cv7.md Россия Windows Абонемент ($m) Разработка внешних компонент

Обновленная версия внешней компоненты для работы с базами данных SQLite и прямыми запросы в ДБФ-базах 1С.

1 стартмани

07.11.2016    19612    87    Djelf    39       

Полноценное использование Drag&Drop в 1С 7.7 8

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 1cv7.md Windows Абонемент ($m) Работа с интерфейсом Разработка внешних компонент

Несмотря на то, что кое-какие функции Drag&Drop были заложены авторами 1cpp, моё дополнение позволяет сделать этот функционал законченным. Дело в том, что средствами 1cpp можно было таскать файлы ТОЛЬКО в 1С, а из 1С - невозможно. Теперь Вы можете сделать работу с файлами на порядок удобнее и эффективнее.

1 стартмани

19.09.2016    10312    13    DasIsFantastich    4       

Подсветка кода 1С в Visual Studio (2012, 2013) 5

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 1cv7.md Windows Абонемент ($m) Инструментарий разработчика

Для тех, кто использует GСomp и TFS в качестве системы контроля версий, не очень удобно сравнивать модули без подсветки кода. Этот плагин призван исправить несправедливость.

1 стартмани

06.06.2016    10296    10    MadDAD    4       

Технологическая проверка кода конфигурации (7.7) 9

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Абонемент ($m) Инструментарий разработчика Практика программирования

1С 7.7 не имеет практически никаких средств, предназначенных для контроля правильности кода. В синтаксически правильном, с точки зрения 1С, коде можно, например, определить переменную НомерДок в модуле документа. Эта обработка может помочь найти некоторые "плохие решения" в коде.

1 стартмани

03.09.2015    6888    6    vcv    6       

Структура модуля с выводом комментариев 0

Инструменты и обработки Программист Внешний отчет (ert,erf) v7.7 1cv7.md Windows Абонемент ($m) Инструментарий разработчика

Отчет показывает структуру программного модуля на языке 1С:Предприятие 7.7.

1 стартмани

06.08.2015    8399    2    корум    1       

Компоненты распознавания и печати штрих-кодов 43

Инструменты и обработки Программист Приложение (exe) v7.7 v8 1cv8.cf 1cv7.md Windows Абонемент ($m) Разработка внешних компонент Сканер штрих-кода

Комплект программного обеспечения для реализации функций оптического распознавания штрих-кодов различных систем при помощи обычной web-камеры, а также их отображения в печатных формах. Программы могут работать в составе конфигураций, созданных на базе платформ «1С-Предприятие» версий 7.7, 8.2, 8.3. Компонент чтения кодов реализован в виде внешней компоненты 1С с COM-интерфейсом. Компонент отображения создан по стандартной технологии ActiveX для Windows, и может быть встроен в любое приложение, поддерживающее встраивание ActiveX элементов управления, например в документ Word или Excel, или форму VBA. P.S. Добавлена новая версия программы распознавания. Новые функции: обработка видео в реальном режиме (а не по таймеру, как раньше), добавлена возможность распознавания штрих-кодов из графических файлов JPEG, PNG, GIF, BMP, а также передавать для распознавания картинки из 1С, теперь можно получить в 1С захваченное с камеры или файла изображение, как с выделением мест, содержащих коды, так и без, а также отдельные фрагменты изображений, содержащие код. Добавлены новые свойства и методы для программирования. Обновлена документация.

10 стартмани

10.07.2015    58425    87    igorberezhnov    87       

Компоновщик прямых запросов 7.7 (Выборка документов) 2

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 openconf 1cv7.md Windows Абонемент ($m) Инструментарий разработчика

Компоновщик прямых запросов позволяет делать выборки документов из SQL базы данных 1C 7.7 любой конфигурации

1 стартмани

18.06.2015    7744    942644    3       

Консоль прямых запросов для 1С++ (1С 7.7) + ToySQL 4

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Абонемент ($m) Консоль запросов

Консоль прямых запросов для 1С 7.7, под компоненту 1Сpp.dll. Особенности: 1. Печать результата запроса. 2. Сохранение результата в файл в виде внутреннего представления таблицы значений 3. Формирование запроса как для SQL, так и для DBF вариантов, с разными вариантами драйверов. 4. Сортировка по произвольной колонке результата таблицы Консоль подпилена для работы с ToySQL

1 стартмани

04.06.2015    9224    19    qeos    5       

Подсветка синтаксиса 1C (в том числе языка запросов) в EmEditor 3

Инструменты и обработки Программист Архив с данными v7.7 1cv7.md Windows Абонемент ($m) Инструментарий разработчика

Данная доработка возможностей EmEditor в первую очередь будет очень интересна людям, которые за долгие годы программирования привыкли к этому редактору, но вынуждены были использовать другие редакторы при работе с 1С, из-за отсутствия соответствующей подсветки текста. Теперь в этом нет необходимости, т.к. представляю вашему вниманию подсветку текста и языка запросов для EmEditor.

1 стартмани

17.05.2015    6137    5    Mopsik    2       

Консоль запросов 12

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Абонемент ($m) Консоль запросов

Консоль запросов к базе SQL, не требующая внешних компонент

1 стартмани

29.04.2015    10303    33    Gvozdod    8       

Обработка для формирования классов для прямого доступа к файлам 1С через курсоры BDE. И многого другого 1

Инструменты и обработки Программист Внешний отчет (ert,erf) v7.7 1cv7.md Windows Абонемент ($m) Разработка внешних компонент

Обработка формирует классы для прямого доступа к файлам 1С через курсоры BDE. Исходник ВК, которая загружает Объект Автоматизации, поддерживающий ITypeInfo и выполняет все его свойства и методы через IlanguageExtender. Обработка для формирования диспинтерфейсов к объектам 1С (таблицаЗначений, справочники, документы, перечисления). Обработки для группировки данных Таблицы Значений в виде ТЗ, где колонками являются ключи и ТзПоГруппе вида ТЗ с детальными записями. Вывод иерархии из ТЗ элементов, поиск дублей, сравнение 2 ТЗ

1 стартмани

14.04.2015    15550    2    Serginio    1       

Формирование EAN-13 при помощи шрифта EANGNIVC.ttf Code128 шрифтом Barcode.ttf 3

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика

Формирование EAN-13 шрифтом Eangnivc.ttf; Формирование Code128 шрифтом Barcode.ttf; Кнопка Рестарт; Генератор случайных чисел;

1 стартмани

08.12.2014    11334    25    EdGreen    1       

Класс для формирования штрих-кодов при помощи свободной библиотеки Zint 2

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 1cv7.md Windows Абонемент ($m) Инструментарий разработчика

Библиотека Zint позволяет формировать штрих-коды различных стандартов (более 100) в виде .png, .eps или .svg Данный класс предназначен для того, чтобы использовать данную библиотеку под 1С 7.7

1 стартмани

02.10.2014    13614    29    Amel2010    10       

Перевод десятичного числа в HEX, BIN, OCT, _IdToStr и другие системы 1

Инструменты и обработки Программист Внешний отчет (ert,erf) v7.7 1cv7.md Абонемент ($m) Инструментарий разработчика Практика программирования Универсальные функции

Два алгоритма перевода десятичного числа в другую систему исчисления от 2 до 36 только средствами 1С (без ВК)

1 стартмани

05.06.2014    10306    10    kos    3       

Ленивые запросы SQL (1С++) для 7.7 на русском 0

Инструменты и обработки Программист Внешний отчет (ert,erf) v7.7 1cv7.md Windows Абонемент ($m) Инструментарий разработчика

Так сложилось, что приходится часто писать прямые запросы для 1С 7.7 используя 1С++. И так сложилось, что я столкнулся с регулярными выражениями, и, как водится, был ошеломлен. Пришлось написать несколько процедур для того, чтобы запросы было составлять удобнее, дабы переключение раскладки языков не сломать :) Получилось в итоге так, что раскладку переключать вообще не требуется. Запрос набирается просто в русской раскладке :) Почти как в 1С 8.Х! Операторы и названия таблиц, которые я пропустил, просто добавляются в функции запросПравилаЗаменыИменПолей, запросПравилаЗаменыИменТаблиц, запросПравилаЗаменыОператоров. Строки, заключенные в кавычки, обрабатываются корректно.

1 стартмани

12.03.2014    8563    2    mismak    3       

Зачеркнутый шрифт Palatino Linotype - 1C 7, 8, и др. 1

Инструменты и обработки Программист Архив с данными v7.7 v8 Россия Windows Абонемент ($m) Инструментарий разработчика

Шрифт с зачеркнутыми латинскими, кириллическими символами, а также цифрами.

1 стартмани

21.02.2014    16161    12    etmarket    2       

Подсветка синтаксиса 1Cv7.7 в Notepad++ 2

Инструменты и обработки Программист Архив с данными v7.7 1cv7.md Windows Абонемент ($m) Инструментарий разработчика

1. Открываем Notepad++. 2. В меню «Синтаксис» выбираем параметр «Задать свой язык ...» 3. В появившемся окне выбираем «Импорт ...» и выбираем Файл шаблона.

1 стартмани

22.01.2014    7149    6    leov-001    4       

Использование сборок .NET в 1С 7.x b 8.x. Создание внешних Компонент. 124

Инструменты и обработки Программист Архив с данными v7.7 v8 1cv8.cf 1cv7.md Windows Абонемент ($m) Разработка внешних компонент

Данная разработка создана для использования сборок .Net в 1С через преобразование объектов и классов в COM-объекты, которые можно использовать в 1С. Достигается это путем создания класса, реализующего методы интерфейса IReflect public class AutoWrap: IReflect.

1 стартмани

28.11.2013    69987    264    Serginio    67       

Tray Informer 48

Инструменты и обработки Программист Приложение (exe) v7.7 v8 Россия Windows Абонемент ($m) Инструментарий разработчика Разработка внешних компонент Работа с интерфейсом

Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))

1 стартмани

04.09.2013    21903    58    O-Planet    78       

Вывод таблицы ASCII 4

Инструменты и обработки Программист Внешний отчет (ert,erf) v7.7 1cv7.md Windows Абонемент ($m) Инструментарий разработчика

Вывод таблицы символов ASCII для любого шрифта, установленного в системе.

1 стартмани

12.07.2013    15227    2    uus    3       

Работа с POS терминалом банка "Аваль" через компоненту POSAPI v 1.8 (7.7) 4

Инструменты и обработки Программист Архив с данными v7.7 Розничная и сетевая торговля (FMCG) Украина Windows Розничная торговля Абонемент ($m) Разработка внешних компонент POS терминал

При работе с COM-объектом POS терминала важно получать информацию о его состоянии для отображения пользователю и/или принятия решений. Но 1С 7.7 не воспринимает тип данных "С-строка". Выход был найден через компоненту-посредника (обертку) WSC.

1 стартмани

11.07.2013    15205    23    simply1    14       

1С7: Галерея изображений для любого справочника 6

Инструменты и обработки Программист Архив с данными v7.7 1cv7.md Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки Работа с интерфейсом

В публикации представлена конфигурация "Галерея изображений". В конфигурации показан метод связки любого элемента любого справочника с изображением, хранящемся в внешнем файле в галерее ИБ. - Хранение изображений в структуре каталогов, сходной с иерархией элемента; - Использование Active-x броузера для отображения связанного рисунка; Используемые компоненты: 1SQLite, 1CPP, Formex. Используемые классы: УправлениеФормой.Привязки (из набора классов http://www.1cpp.ru/forum/YaBB.pl?num=1273512019)

1 стартмани

10.07.2013    15967    12    unichkin    11       

Внешняя компонента для работы с ККМ Искра "Прим-07К" 5

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v7.7 1cv7.md БУ Windows Кассовые операции Абонемент ($m) Разработка внешних компонент ККМ Фискальный регистратор

Бесплатная внешняя компонента для 1С7.7, позволяющая работать с фискальными регистраторами производства Искра, такими как ПРИМ-07К, ПРИМ-08ТК и пр.

1 стартмани

18.06.2013    19637    64    sandyanf    3       

v7.7 1CDialogControls: Инструмент в помощь разработчику на 7.7. 15

Инструменты и обработки Программист Приложение (exe) v7.7 1cv7.md Windows Абонемент ($m) Инструментарий разработчика

Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........

1 стартмани

21.02.2013    10242    34    MarSeN    14       

Быстрый просмотр данных из переменных типа ТаблицаЗначений, СписокЗначений, ИндексированнаяТаблица, Запрос 1

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Windows Абонемент ($m) Инструментарий разработчика

Данный 1С++ класс предназначен для программиста - им очень удобно пользоваться при разработке, когда нужно без лишних затей вывести содержимое переменных типа ТаблицаЗначений, СписокЗначений, ИндексированнаяТаблица, Запрос. Поддерживаются итоги по колонке для числовых значений.

1 стартмани

13.02.2013    4839    11    aaiivanov    3       

[Разработчику] Любая таблица значений в OLAP 20

Инструменты и обработки Программист Архив с данными v7.7 1cv7.md Windows Абонемент ($m) Инструментарий разработчика Практика программирования Универсальные обработки

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    24232    49    venger    7       

Групмейкер для таблицы значений. 24

Инструменты и обработки Программист Внешний отчет (ert,erf) v7.7 v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Абонемент ($m) Инструментарий разработчика Практика программирования Универсальные обработки

Универсальная функция и обработка для свертки и группировки таблицы значений. Очень простой способ подвести итоги по призвольным группам в произвольном порядке любой таблицы значений для быстрого вывода на печать нужной пользователю последовательности и детализации группировок.

1 стартмани

20.11.2012    19724    59    dusha0020    15       

Пример работы с Web камерой (WIA) 30

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 Windows Абонемент ($m) Разработка внешних компонент

Делаем фото с веб камеры. Используем стандартную библиотеку Windows Image Acquisition Automation Library. Библиотеку wiaaut.dll качаем (из инета, бесплатно), регистрируем командой regsvr32.

1 стартмани

23.10.2012    27216    141    via    18       

Список баз 1С 7 3

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v7.7 1cv7.md Россия Windows Абонемент ($m) Разработка внешних компонент

Скрипт на VBS Подключает базы клиенту на основании вхождения данного пользователя в нужную группу Active Directory. Может использоваться в групповых политиках, либо в качестве стартера 1С7

1 стартмани

17.08.2012    8368    7    zebr    1       

Консоль прямых запросов для 1С++ (1С 7.7) 9

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Абонемент ($m) Консоль запросов

Консоль прямых запросов для 1С 7.7, под компоненту 1Сpp.dll. Особенности: 1. Печать результата запроса. 2. Сохранение результата в файл в виде внутреннего представления таблицы значений 3. Формирование запроса как для SQL, так и для DBF вариантов, с разными вариантами драйверов. 4. Сортировка по произвольной колонке результата таблицы

1 стартмани

25.04.2012    29381    168    Aristo_    9       

Beep 1

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 openconf 1cv7.md Россия Windows Абонемент ($m) Разработка внешних компонент

Программа Бипер. Простенький скрипт с простенькой командой.

1 стартмани

18.04.2012    6672    11    l2d808    1       

Температура в 1С 7

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 1cv7.md Россия Абонемент ($m) Разработка внешних компонент

Внешняя компонента (для 7.7 и 8.хх) позволяющая работать с сетью microLAN и устройствами с интерфейсом 1-Wire а именно получать значения температуры от датчиков DS18B20 и DS18S20 непосредственно в 1С.

1 стартмани

01.04.2012    9624    25    pophmail    14