RLS в v77 возможен? Для SQL-поставки - легко!

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

Разработка - Разработка внешних компонент

MS SQL Server позволяет автоматизировать многие задачи учета, но все задумки упираются в ограничения v77-платформы. Попробуем эти ограничения обойти и вот простой и наглядный пример этого...

Если имеется крайняя необходимость, например, скрыть от определенной группы пользователей некоторые документов (по виду, дате, набору реквизитов и пр.), то одни реализуют алтернативные журналы документов (на основе ТЗ, ТП или даже в виде отчетов), другие задаются философским китайским вопрос (и отказываются от этой затеи), а мы пойдем "прямым" путем...

Начальные условия:

0. Имеется в распоряжении  MS SQL Server 2k/2k5 - обязательная часть;

1. Имеется желание - необязательная часть;

2. Имеются sql-знания - крайне желательная часть, но может и без них проканать;

Суть идеи:

Необходимо вмешаться в процесс передачи запроса от v77-клиента на sql-сервер и внести изменения в текст запроса так, чтобы он возвращал все документы, кроме Банковских выписок. Начнем с конца...

V77-клиент для журнала документов формирует запрос к таблице [_1SJOURN].

Для типовой 1С:Бухгалтерии v5.x структура таблицы [_1SJOURN] следующая (смотрим сами так: EXEC sp_help '_1SJOURN'):

  • ROW_ID - первичный ключ;
  • IDJOURNAL - идентификатор журнала;
  • IDDOC - идентификатор документа;
  • IDDOCDEF - идентификатор вида документа;
  • APPCODE - битовая маска, определяющая  какие компоненты использует док-т;
  • DATE_TIME_IDDOC - композитное поле из даты, времени и идентификатора документа;
  • DNPREFIX - префикс номера документа;
  • DOCNO - номер документа;
  • CLOSED - битовая маска состояния документа;
  • ISMARK - пометка удаления документа;
  • ACTCNT - счетчик движений документа;
  • VERSTAMP - счетчик изменений документа;

 

И запрос формируемый v77-клиентом, при открытии журнала документов (в общем случае):

Select * from _1SJOURN(NOLOCK) (1)

Чтобы отсеить Банковские выписки, нужно наложить условие на вид документа (IDDOCDEF). Для Банковской выписки идентификатор вида документа = 238. Что в общем виде должно быть так:

Select * from _1SJOURN(NOLOCK) WHERE IDDOCDEF != 238 (2)

Некоторые могут спросить, а почему "не равно 238", но мы ведь хотим видеть все документы, кроме документов вида Банковская выписка.

От общего вида переходим к конкретным деталям - на самом деле v77-клиент формирует запросы сложнее, чем указано выше, а реализовывать свой sql-парсер, который универсально сможет подменить оригинальный текст запроса на модифицированный - дело не совсем тривиальное. Значит упростим себе задачу, и воспользуемся возможностями sql-сервера - VIEW (представление) нам поможет. Обернем запрос (2) в представление с названием [vw_oops_1SJOURN] и, забегая вперед, подменим оригинальные запросы к таблице [_1SJOURN] на запросы к представлению [vw_oops_1SJOURN], и будем наслаждаться. Но, некоторые могут усомниться, что не взлетит запись (с чтением проблем не будет же), а некоторые не будут в этом сомневаться, но будут уверены, что в конкурентном окружении будут проблемы.

Скрипт на создание представления:

CREATE VIEW [dbo].[vw_oops_1SJOURN]
AS
    SELECT

        NULLIF(ROW_ID, NULL) as ROW_ID,
        IDJOURNAL,
        IDDOC,
        IDDOCDEF,
        APPCODE,
        DATE_TIME_IDDOC,
        DNPREFIX,
        DOCNO,  
        CLOSED,
        ISMARK,
        ACTCNT,
        VERSTAMP
    FROM [dbo].[_1SJOURN]
    WHERE IDDOCDEF != 238

Давайте разбираться...

С чтением (SELECT) проблем быть не должно, хинты типа NOLOCK, вставляемые v77-клиентом в запросах, по прежнему будут, т.е. на сервер будут уходить запросы типа: Select * from vw_oops_1SJOURN(NOLOCK).

Запись (INSERT/UPDATE) тоже будет работать, так как представление vw_oops_1SJOURN является обновляемым: используется одна базовая таблица, нет вычисляемых полей, IDENTITY-поле ROW_ID обернуто в NULLIF.

Остается вопрос с хранимыми процедурами, сгенерированными v77-клиентом, и эскалациями блокировок, но для нашего примера это не актуально (было бы актуально, если бы мы переопределили таблицу [_1SJOURN] на какую-либо свою и/или на представление, основанное на другой базовой таблице). Однако, хранимую процедуру [_1sp__1SJOURN_ByIDDOC] переопределить желательно (хоть и не обязательно, на тот случай, если нужно закрутить гайки по-максимуму) на [vw_oops_1sp__1SJOURN_ByIDDOC]:

CREATE PROCEDURE [dbo].[vw_oops_1sp__1SJOURN_ByIDDOC](@id CHAR(9))
AS
      SELECT *
      FROM vw_oops_1sjourn(NOLOCK)
      WHERE IDDOC=@id
GO
 

C sql-частью определились, теперь возвращаемся к v77-клиенту. Штатно переопределить источник данных нельзя, значит нужно использовать нештатные методы для этого. Не останавливаясь на деталях проектирования и реализации внешней компоненты, продоставляющей функционал подмены запросов, переходим к финальной части - описанию ее программного интерфейса.

Для нашей задачи необходимо создать экземпляр класса:

oQueryAct = СоздатьОбъект("QueryAct");

Пока объект "жив" (находится в области видимости), функционал манипулирования с запросами будет работать, как только объект разрушен - начинается штатная жизнь. Отсюда первое правило: если функционал нужен в течение всего сеанса работы пользователя - создавай глобальную экспортную переменную.

Дальше необходимо заполнить коллекцию базовых объектов, над которыми будут выполняться манипуляции:

Манипуляторы = oQueryAct.Манипуляторы; // коллекция, которую будем заполнять

Заполнение коллекции (переопределение таблицы [_1SJOURN]):

Манипулятор = Манипуляторы.Добавить("_1sjourn");
Манипулятор.Поведение  = 2; // поведение манипулятора
Манипулятор.Суррогат = "vw_oops_1sjourn";
// суррогатный объект, которым будет подменен оригинальный объект, в данном случае _1sjourn
 

Заполнение коллекции (переопределениехранимой процедуры [_1sp__1SJOURN_ByIDDOC]):

Манипулятор = Манипуляторы.Добавить("_1sp__1SJOURN_ByIDDOC");
Манипулятор.Поведение = 2;
Манипулятор.Суррогат = "vw_oops_1sp__1SJOURN_ByIDDOC";
 

И финишный аккорд (активация манипуляторов):

oQueryAct.Применить(); 

И пока объект oQueryAct будет "жив", будет выполняться подмена объектов на суррогаты.


Программный интерфейс класса "QueryAct": 

Методы:

   - Применить / Employ - задействовать новые правила, описанные в коллекции Манипуляторы;

Свойства:

   - Манипуляторы / Handlers - коллекция правил, описывающая новое поведение обращения к источникам данных;

Элемент коллекции:

Свойства:

   - Поведение / Behaviour (Число) - поведение манипулятора. Возможные значения: 1 - вырезать INDEX-хинты, 2 - заменить имя источника данных на суррогат;

   -  Суррогат / Substitute (Строка) - имя суррогатного объекта. Имеет смысл указывать при выбранном Поведении = 2;

Работа с коллекцией:

   - Добавить / Add - добавить элемент в коллекцию;

   - Удалить / Remove (Число/Строка) - удалить элемент из коллекции;

   - Очистить / Clear - очистить коллекцию;

   - Количество / Count - получить количество элементов в коллекции;

   - Получить / Get (Число/Строка) - получить элемент коллекции;


 Disclaimer:

Возможно, некоторым нужно будет установить VC runtime library, которую компания Microsoft любезно выложила у себя и совершенно бесплатно предлагает к скачиванию и распространению...

 

Продолжение следует: а в следующей серии мы поговорим о секционировании! 

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

Наименование Файл Версия Размер
Внешняя компонента

.rar 89,49Kb
26.08.10
54
.rar 89,49Kb 54 Скачать
Пример запуска компоненты

.rar 7,69Kb
26.08.10
21
.rar 7,69Kb 21 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3425 26.08.10 22:03 Сейчас в теме
QueryAct - откуда берется, из "VC runtime library" - ???
2. hogik 433 26.08.10 22:35 Сейчас в теме
(1)
Сергей.
Так, для общей информации (теории). ;-)
В разработке: http://infostart.ru/public/15211/
Это делается одной строчкой: Ext._(60,"1SJOURN","Val(IDDOCDEF)<> 238")
3. CheBurator 3425 26.08.10 22:44 Сейчас в теме
(2) за ценное замечание - спсб, но тянуть клиент/сервер Advantage 8.1/9.1 ради такой одной строчки - я не рискну... $-) а так, конечно - спсб за ценный комментарий - закросспощу его в мисту... http://www.forum.mista.ru/topic.php?id=501406
4. hogik 433 26.08.10 23:09 Сейчас в теме
(3)
Так лучше: Ext._(60,"1SJOURN","IDDOCDEF<>""238 """)
nvhelsing; mike581; +2 Ответить
5. spock 592 27.08.10 04:38 Сейчас в теме
(1)ну, если глубоко копать, то оттуда, да :)
6. ev-kov 5 10.03.11 19:18 Сейчас в теме
Интересно, а с подменой таблиц движений и остатков регистра, проблем не возникнет при проведении документов по этому регистру ?
7. poyson 22.02.13 14:29 Сейчас в теме
8. kos 44 27.11.14 13:07 Сейчас в теме
1. автору: хотелось бы услышать ответ на вопрос от ev-kov (про регистры)
2. всем : "QueryAct vs vk_hook1C" : кто-нибудь сравнивал быстродействие и безглючность этой компоненты и hook (http://infostart.ru/public/83504) ?
9. kos 44 02.12.14 13:57 Сейчас в теме
1) пытаюсь выполнить метод "Insert(а,б)/Вставить(а,б)"
Манипулятор2 = Манипуляторы.Вставить(1,"_1sp__1SJOURN_ByIDDOC_2");
Манипулятор2 = Манипуляторы.Вставить("_1sp__1SJOURN_ByIDDOC_2",1);
Манипулятор2 = Манипуляторы.Вставить(Манипулятор1,"_1sp__1SJOURN_ByIDDOC_2");
Манипулятор2 = Манипуляторы.Вставить(Манипулятор1,1);

выдает ошибку:
{С:\....\МАНИПУЛЯТОРЫ.ERT(69)}: Недопустимый тип первого параметра!


Какие параметры у метода "функция Insert(а,б)/Вставить(а,б)"
и что она возвращает (догадываюсь что элемент коллекции)

2) Кроме того есть метод "процедура Move(а,б)/Сдвинуть(а,б)"
Аналогично: какие у него параметры ?

3) с остальными методами разобрался:

'чКолво' функция Count() Количество()
получить количество элементов в коллекции

'оМанипуляторы' функция Get(чИндекс[,сИмяМанипулятора]) Получить(чИндекс[,сИмяМанипулятора])
получить элемент коллекции (Индекс=0...Колво-1)

'оМанипуляторы' функция Get(сИмяМанипулятора[,чИндекс]) Получить(сИмяМанипулятора[,чИндекс])
получить элемент коллекции (Индекс=0...Колво-1)

'чИндекс' функция IndexOf(оМанипуляторы) Индекс(оМанипуляторы)
получить индекс элемента коллекции (Индекс=0...Колво-1)

'оМанипуляторы' функция Add(сИмяМанипулятора) Добавить(сИмяМанипулятора)
добавить элемент в коллекцию

void процедура Remove(чИндекс|сИмяМанипулятора) Удалить(чИндекс|сИмяМанипулятора)
удалить элемент из коллекции (Индекс=0...Колво-1).
Индексация сдвигается на '-1'

void процедура Clear() Очистить()
очистить коллекцию
10. kos 44 06.12.14 16:47 Сейчас в теме
вот и нарвался на первый случай "проблемы конкурентного окружения"

1) подменил запросы "sel ect ... fr om _1SJOURN ...."
на множественный фильтр по графе отбора

sel ect ...
FR OM _1SJOURN AS TabJ
INNER JOIN _1SCRDOC AS TabGraf with (NOLOCK,INDEX(CHILD))
ON (TabGraf.CHILDID = TabJ.IDDOC)
AND (TabGraf.MDID = "+чИдГрафы+")
AND (TabGraf.PARENTVAL "+СтрУсловияОтбора+")

2) получил "какашку": при создании нового документа на сервер уходит запрос
(поймал профилером)

set rowcount 1;
sel ect DOCNO fr om vw_oops__1SJOURN_XXXЮзер
WITH (NOLOCK)
wh ere DNPREFIX=' 11972014 '
order by DNPREFIX DESC, DOCNO DESC;
set rowcount 0

что приводит к выдаче не "вообще" максимально номера документа в таблице
а к "отфильтрованному" максимальному номеру 8((( для пользователя "XXXЮзер")

В результате имеем задвоение нумерации :
если разные конкурирующие пользователи
используют разные фильтры - по СВОИМ значениям отборов

При этом : пользователь без фильтров
видит два документа с одинаковым номером
введенные этими двумя разными "отфильтрованными" пользователями

Чтобы адекватно пользоваться данной ВК,
в ней нужна доработка ( читаем "запрос на фичи к этой ВК" ):

1) иметь режим "QueryAct.Отладка(0/1)"
чтобы видеть что реально уходит на сервер

2) иметь возможность условной замены "суррогатов"(имен),
для чего добавить 2 свойства
* Манипулятор.ПриУсловииДа=ХХХ
* Манипулятор.ПриУсловииНе=УУУ
тогда суррогат будет срабатывать (выполнять замену запроса)
только при условии что в тексте запроса
* есть подстрока вида "ХХХ"
* нет подстроки вида "УУУ"
Если параметр пустой - безусловная замена.
В моем случае эти параметры будут такими:
* Манипулятор.ПриУсловииДа=""
* Манипулятор.ПриУсловииНе="sel ect DOCNO fr om "

Можно ожидать такие доработки?
Иначе в продакшене использовать эту ВК не имеет смысла.

P.S> ну или выложить здесь исходники,
дабы (кто хочет) сам доработал под свои нужды то, что хочет....
11. dicwork 01.04.15 12:16 Сейчас в теме
Так доработали эту компоненту? Или уже никто не хочет заниматься семеркой?
12. spock 592 01.04.15 16:27 Сейчас в теме
(11) dicwork, кому-то это еще интересно?
Оставьте свое сообщение

См. также

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

Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

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

1 стартмани

28.11.2013    80393    232    Serginio    71    

Криптография: внешняя компонента для 1С 7.7

Разработка внешних компонент Защита и шифрование v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    1085    3    mdbruyfn    5    

Протокол UDP: внешняя компонента для 1С 7.7

Разработка внешних компонент v7.7 Абонемент ($m)

Обмен сообщениями и небольшими файлами по протоколу UDP с 1С и внешними приложениями в локальной сети или сети VPN.

1 стартмани

23.05.2020    1007    0    mdbruyfn    0    

Клиент HTTP(S): внешняя компонента для 1С 7.7

Разработка внешних компонент WEB v7.7 Абонемент ($m)

Компонента позволит использовать различные веб-сервисы интернет-ресурсов, например работать с онлайн-кассой через API, предоставленное ее разработчиком. Тестировалась только на платформе 1С релиза 7.70.027.

1 стартмани

14.11.2019    3989    10    mdbruyfn    18    

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

Разработка внешних компонент Сканер штрих-кода v7.7 v8 1cv8.cf 1cv7.md Абонемент ($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    66965    83    igorberezhnov    95    

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

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

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

1 стартмани

02.08.2019    7837    17    phsin    23    

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

Разработка внешних компонент v7.7 Абонемент ($m)

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

1 стартмани

29.04.2019    4448    1    Palmer1976    0    

Поддержка выгрузки в Excel 2007 для 1С 7.7 в одну строку

Разработка внешних компонент Загрузка и выгрузка в Excel v7.7 1cv7.md Абонемент ($m)

Внешняя компонента 1С 7.7. для сохранения таблиц в формате Excel 2007.

1 стартмани

21.03.2019    8587    14    MadDAD    66    

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

Разработка внешних компонент v7.7 1cv7.md Абонемент ($m)

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

1 стартмани

14.04.2015    19294    2    Serginio    1    

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

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

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

1 стартмани

13.07.2018    8502    1    pakko    7    

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

Разработка внешних компонент v7.7 v8 Россия Абонемент ($m)

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

5 стартмани

04.01.2018    13836    2    protexprotex    34    

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

Разработка внешних компонент ККМ Кассовые операции Кассовые операции 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    36164    292    asdfghgghjdhg    110    

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

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

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

1 стартмани

08.05.2017    23943    75    crimeait    2    

1sqlite reborn

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

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

1 стартмани

07.11.2016    24089    18    Djelf    39    

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

Работа с интерфейсом Разработка внешних компонент v7.7 1cv7.md Абонемент ($m)

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

1 стартмани

19.09.2016    13513    14    DasIsFantastich    4    

Шаблон внешней компоненты для Lazarus (FreePascal)

Инструментарий разработчика Разработка внешних компонент v7.7 v8 Абонемент ($m)

Шаблон внешней компоненты COM для Lazarus (FreePascal)

1 стартмани

16.05.2014    15871    18    v77    5    

Tray Informer

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

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

1 стартмани

04.09.2013    25535    6    O-Planet    78    

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

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

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

1 стартмани

11.07.2013    18090    16    simply1    16    

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

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

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

1 стартмани

18.06.2013    22589    27    sandyanf    3    

Сканер штрих-кода клавиатурный 7.7 (внешняя компонента)

Разработка внешних компонент Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v77::ОУ 1С7:Комплекс 1С7:ТиС Россия БУ Абонемент ($m)

Работа с COM портом (ввод/вывод), генерация внешнего события. Перехват мыши и клавиатуры для отслеживания времени простоя 1С. Перехват цифрового ряда, генерируемого сканером ШК или ридером карт, подключенных как клавиатура (генерация внешнего события вместо ввода цифр в окно 1С)

1 стартмани

10.11.2012    7974    4    e-rogov    4    

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

Разработка внешних компонент v7.7 Абонемент ($m)

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

1 стартмани

23.10.2012    30789    42    via    18    

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

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

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

1 стартмани

17.08.2012    10308    0    zebr    1    

Beep

Разработка внешних компонент v7.7 openconf 1cv7.md Россия Абонемент ($m)

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

1 стартмани

18.04.2012    8628    2    l2d808    1    

Внешняя компонента для подключения к 1С охранного оборудования производства фирмы Bolid

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

Компонента для считывания ID магнитного ключа посредством охранного оборудованием производства фирмы Bolid (http://www.bolid.ru) через 1С

1 стартмани

04.04.2012    13292    4    andy_zhav    1    

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

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

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

1 стартмани

01.04.2012    11565    4    pophmail    14    

Батник обновления КЛАДР для 1С версии 7.7

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

Скрипт обновления файлов КЛАДР. Wget качает, а 7zip извлекает.

1 стартмани

23.03.2012    8066    0    voler    5    

Блокировка клавиши Esc ("Прервать выполнение...?") в "1С:Предприятие 7.7"

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

Способ блокировки мне рассказал Аркадий (Abadonna), а я только записал его рассказ на С++.

5 стартмани

07.01.2012    17633    0    hogik    23    

vCalendar в 1С

Разработка внешних компонент v77::ОУ v77::БУ 1cv7.md Россия Абонемент ($m)

Задача: создание в 1С 7.7 уведомления в виде почтового сообщения в таком формате, чтобы его понимали программы, работающие с календарями. Реализовано в виде класса 1С++.

1 стартмани

18.10.2011    8742    1    Amel2010    4    

Класс для работы с XLS, CSV файлами

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

Класс для работы с XLS, CSV файлами - для "прозрачной работы" с файлами XLS/CSV - использует MS Excel или Open Office

1 стартмани

18.10.2011    7699    1    stepman3    8    

Класс 1C++ для отправки почты

Инструментарий разработчика Разработка внешних компонент Email v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Данный класс позволяет выполнить отправку электронной почты из 1С без дополнительных компонент (кроме 1С++), просто и удобно.

1 стартмани

26.09.2011    11461    6    curdate    5    

Обработка для подключения весов CAS LP15 к ТиС

Весы Разработка внешних компонент v77::ОУ 1С7:ТиС Россия Абонемент ($m)

Позволяет выгружать товары из базы данных 1С в память весов, причем при любых условиях отбора выгружаются только товары, имеющие тип "весовой". Также обработка позволяет отбирать товары для выгрузки по разным условиям и считывать информацию о хранящихся в памяти весов товарах.

1 стартмани

07.09.2011    13492    30    ectoneptune80    12    

Skype+1C (для 7.7)

Внешние источники данных Разработка внешних компонент WEB v7.7 1cv7.md Абонемент ($m)

Внешняя обработка на 7.7 для работы со Skype. Позволяет менять статус, добавлять/удалять контакты, звонить, отправлять сообщения, просматривать истории.

1 стартмани

14.04.2011    21215    11    Lepochkin    22    

Загрузка процессора 100% в 7.7 под Windows Server 2008 при блокировке журнала транзакций.

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

1C 7.7 "Секретный релиз" + Windows Server 2008r2 и 1С запускается и работает, но ввиду того, что обновили BkEnd, потеряли полезнейший функционал, такой как предотвращение "загрузки процессора на 100%" при ожидании блокировки журнала.

2 стартмани

31.03.2011    36778    51    maxpiter    99    

Класс 1С++ для доступа к базе данных FireBird

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

Класс написан для упрощения работы программиста - уменьшения объема кода.

1 стартмани

04.03.2011    86455    1    wing    3    

ВК для упаковки строк в памяти

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

ВК для упаковки строк в памяти

1 стартмани

07.01.2011    11631    2    nicxxx    18    

Grid с возможностью фильтрации, группировки и экспорта в Ecxel

Разработка внешних компонент v77::ОУ v77::БУ 1cv7.md Россия Абонемент ($m)

Создавал для себя так как используем Рарус общепит и и приходится анализировать товары и блюда. Может кому то пригодится

1 стартмани

29.09.2010    4934    2    pokemon99    11    

Йоксель, научившийся читать Excel 95 + парочка параметров печати

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

Небольшое ответвление проекта Йоксель с поддержкой чтения файлов Excel 95 (BIFF5) и небольшое расширение параметров печати

1 стартмани

22.09.2010    20968    10    Djelf    13    

Печать объекта Дерево+Таблица внешней компоненты FormEx

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Внешний отчет/обработка - печатает объект "Дерево+Таблица" в древовидной форме, используя внешнюю компоненту Yoksel. Выводит столбцы с учетом параметров колонок "ТаблицыЗначений" (заголовка, форматной строки, положения). Благодаря использованию внешней компоненты Yoksel, выводит на печать с учетом вложенности узлов, создавая соответствующие группировки в печатной форме, которые сохраняются и при сохранении в Excel.

1 стартмани

17.08.2010    22839    9    venger    5