Tracer 1C

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

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

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

ОПИСАНИЕ

На идею создания этой ВК меня подтолкнул fixin, когда он в процессе обсуждения посетовал, что разработчики 1С проигнорировали его предложение включить трассировку в стандартный отладочный механизм платформы. Зря они так, конечно, с ним обошлись, поскольку предложение - толковое.

Предлагаю свое решение проблемы автоматизации трассировки программных модулей на базе внешней компоненты.

Tracer автоматически формирует сообщения:

- о входе-выходе из процедур и функций,
- о возвращаемых значениях функций
- о входе в условные операторы
- о вычисляемых значениях локальных переменных модуля

Все сообщения формируются динамически, в процессе работы, т.е. НЕ ТРЕБУЕТСЯ вручную вносить каких-либо изменений в программные модули справочников, документов и отчетов. Также Tracer не портит Ваши модули: внесенные изменения не сохраняются.

В качестве примера поместил в "Подробное описание" лог трассировки проведения расходной накладной из демо-базы 1С:Торговля и склад 7.7

ВЫКЛАДЫВАЮ ИСХОДНИКИ для желающих что-либо доработать под себя, поскольку тема трассировки достаточно интересна, и идей тут может быть сколько угодно: умная трассирочка таблиц значений, окно настройки и т.д. Я решил задачу лишь в общем. Платформа - Delphi 7

Кто уже понял, прототипом был взят метод, описанный в "OnSave" romix-ом. Кстати, с этим связана одна проблема, о которой я скажу чуть ниже...

УСТАНОВКА

1. Скопировать Tracer1C.dll в каталог информационной базы
2. В глобальный модуль внести небольшие изменения

// В начале модуля добавляем
Перем глТрейсер Экспорт;
...

Процедура ПриНачалеРаботыСистемы()
...
// В конце процедуры добавляем
ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"Tracer1C.dll");
  глТрейсер=СоздатьОбъект("AddIn.Tracer1C");
  глТрейсер.Open();
// Если используется внешняя обработка трассировки, то включить строку:
глТрейсер.ExtTracer();
// Если необходимо трассировать не все, а лишь те модули, где вначале стоит
//TRACER ON, то включить строку:
глТрейсер.TraceAll(0);
КонецПроцедуры  

Процедура ПриЗавершенииРаботыСистемы()
// В начале процедуры добавляем
глТрейсер.Close();
...

КонецПроцедуры  



После этого просто работайте в своей программе, а сообщения трассировки будут появляться в окне сообщений. Конечно, ни что не мешает их выводить в файл.

РЕЖИМЫ РАБОТЫ И РАСШИРЕНИЯ

Метод TraceAll позволяет управлять работой внешней компоненты. По умолчанию происходит трассировка всех модулей. После вызова глТрейсер.TraceAll(0) трассируются только те модули, первой строчкой которых стоит комментарий

//TRACER ON

Соответственно, вызов глТрейсер.TraceAll(1) возвращает режим трассировки всех модулей

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

глСформироватьСообщениеТрассировки(Ключ,Имя,Значение).

Выкладываю свой пример реализации расширения трассировки, позволяющий формировать печатную таблицу сообщений трассировки, направлять вывод в файл и в окно сообщений, а также включать/отключать различные режимы трассировки. Подробное описание по использованию смотреть в модуле Трассировка.ert Разумеется, каждый может взять за основу эту обработку и сделать нечто свое, супер навороченное. С удовольствием дам ссылки на такие разработки и выложу их здесь по желанию авторов.

БЫЛА ПРОБЛЕМА, НАДЕЮСЬ РЕШИЛИ

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

Особые благодарности в виде рукопожатий, пива, поцелуев при встрече (девушки) и всяческих похвал, А ТАКЖЕ плюсиков в комментах и веб-маней (особо благодарные) выражаем slavapil, artbear и MMF, без чьего участия ничего бы не получилось

Кстати, если Вы хотите поблагодарить плюсиками вышеназванных разработчиков, то можно не лазить по топику. Просто щелкаем по этим ссылкам прямо здесь:

slavapil: //infostart.ru/projects/2826/rate.php?rate=1&cid=63&cp=all
artbear: //infostart.ru/projects/2826/rate.php?rate=1&cid=32&cp=all
MMF: //infostart.ru/projects/2826/rate.php?rate=1&cid=13&cp=all

Если разработка действительно окажется кому-то полезной, то справедливости ради стоит упомянуть fixin-а. Если бы он не создал тот топик, за который, кстати, нахватал минусов, то ничего бы не было, ни моей идеи, ни дружной работы по устранению бага.

Тема нашла продолжение здесь: http://www.1cpp.ru/forum/YaBB.pl?num=1232197179

Купи премиум доступ - поддержи наше Сообщество!

Если Вы приобретаете премиум-аккаунт с этой страницы, то я, как автор, предоставляю Вам гарантированную скидку 10 % на все мои платные разработки, которые Вас заинтересуют...  Для приобретения премиум-аккаунта перейдите по этой С С Ы Л К Е

________________
Буду рад услышать комментарии, пожелания по доработке!

162

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

Наименование Файл Версия Размер
Внешняя компонента
.1225901920 71,95Kb
25.09.09
769
.1225901920 71,95Kb 769 Скачать
Исходники Tracer 1C на Delphi 7
.1225902089 17,78Kb
25.09.09
410
.1225902089 17,78Kb 410 Скачать
Мой пример реализации внешней трассировки
.1226279216 44,00Kb
25.09.09
489
.1226279216 44,00Kb 489 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. O-Planet 6974 05.11.08 19:32 Сейчас в теме
94. Abadonna 3834 07.11.08 05:24 Сейчас в теме
Есть одна забавная багофича. Трассер отслеживает только код в составе MD (под это и заточен), в ситуации когда модуль подгружается из внешнего файла
#ЗагрузитьИзФайла ExtModules\Справочники\КонтрагентыМодульЭлемента.txt, имеем:
<<?>>//*** Traced by O-Planet
{Справочник.Контрагенты.Форма.Модуль(1)}: Обнаружено логическое завершение исходного текста модуля
и затык, элемент не открывается! Планет, сам поправишь? ;)
Надо проверочку на первую строчку кода на #ЗагрузитьИзФайла
95. Abadonna 3834 07.11.08 05:36 Сейчас в теме
+(94) Вот так, например, трабл решается:
if MyCompile.Test(UnitText) and (Pos('#ЗагрузитьИзФайла',t)=0) then
begin
NewUnitText:=MyCompile.Run(UnitText)+#0;
...............................................
2. support 4455 05.11.08 21:09 Сейчас в теме
3. O-Planet 6974 05.11.08 21:12 Сейчас в теме
(2) ??? Типа страшно стало? :)
4. hogik 429 05.11.08 21:14 Сейчас в теме
5. Душелов 3897 05.11.08 21:15 Сейчас в теме
6. O-Planet 6974 05.11.08 21:18 Сейчас в теме
(5) Если кто-то в 8-ке воспроизведет OnSave - тому, пожалуй, надо будет что-то круче пива поставить...
7. jhfrek 185 05.11.08 21:36 Сейчас в теме
Именно из-за того что такое окно постоянно выскакивает после закрытия 1С, я и перестал заниматься разработкой внешних компонент. Так как никто не смог внятно объяснить что же это такое и почему так происходит, а кто знает - тот скромно молчит, упиваясь силою своего знания в магии 1С.
8. Abadonna 3834 05.11.08 21:38 Сейчас в теме
(7) Никакой магии... Если библиотека некорректно подчищает за собой (не разрушает объекты), окошко и будет вываливаться
12. O-Planet 6974 05.11.08 22:03 Сейчас в теме
(7) Нет, ты не о том говоришь. ты говоришь о случае, когда забывают сделать Unassigned на переменные OleVariant, либо когда применяют дестрактор, а потом 1С его повторно вызывает. В моем же случае ошибка плавает, т.е. появляется спонтанно. Поэтому я и предполагаю, что иногда память выскакивает из адресного пространства 1С
9. Abadonna 3834 05.11.08 21:45 Сейчас в теме
(0) А подправленную NewAssignAndCompile_done я тебе, Планет, между дрочим высылал. Там ничего не выскакивало
10. O-Planet 6974 05.11.08 21:57 Сейчас в теме
(9) Твой вариант я посмотрел, но ты там проблему не решаешь, а от нее уходишь. Ты там применяешь перехват Ромикса для перекодировки модуля, но ты не создаешь в памяти новый модуль, а коварно используешь старый, созданный 1С, поскольку у тебя перекодировка идёт 1 к 1 по длине. Соответственно, ничего и не выскакивает. А ты попробуй обойтись без вот этого:

for i := 1 to Length(s2) do begin
t[i - 1] := s2[i];

- а сделай что-то вроде t:=@s2[1] - и выскочит таже фигня.
140. slavapil 130 10.11.08 09:30 Сейчас в теме
при подключении глТрейсер.ExtTracer() (Пропадают первые буквы):

лСформироватьСообщениеТрассировки<<?>>(Ключ,Имя,Зн);
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(9)}: Процедура не обнаружена (лСформироватьСообщениеТрассировки)
<<?>>ункция СформироватьШтрихкод(Весовой, Код)
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(14)}: Переменная не определена (ункция)
Return Tracer___Ret<<?>>;
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(96)}: Процедура не может возвращать значения
<<?>>КонецФункции
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(99)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
11. O-Planet 6974 05.11.08 21:59 Сейчас в теме
Глюк! t[i - 1] := s2[ i ]; - не пропечаталось :(
13. MMF 678 05.11.08 22:23 Сейчас в теме
(0) ну я бы начал с того, что
function TAddInObject.Done: HResult; stdcall;
begin
pm.UnPatch;
FreeAndNil(pm);
FreeAndNil(MyCompile);
Done := S_OK;
У тебя Init вызывается два раза (ВК экспортирует один объект), соответственно создаются два pm и два MyCompile. На второй итерации первые теряются. Возможно, поможет с багом
nati_dom; popenko; tonyz; Shaman100M; theshadowco; talb; novator; GerinG; buzzzard; thesharkman; Valet; tjSolomon; bdimas; kolga; antz; disa_da; redcat; roger; s_alex_s; homm3; brr; ded00786; Ёпрст; Булгахтер; Fedorenko; GrayT; jhfrek; support; Omni; Pari; BorovikSV; Donat; nickVZ; vladG; Sol; Mucmepukc; +36 Ответить
15. O-Planet 6974 05.11.08 22:36 Сейчас в теме
(13) Ошибка возникает вот тут:

if MyCompile.Test(UnitText) then
begin
NewUnitText:=MyCompile.Run(UnitText)+#0;
p:=@NewUnitText[1];
t:=StrNew(p); // !!!
asm
mov ecx, [ecx111];
mov eax, t; // ТУТ!
mov dword ptr[ecx+$54], eax;
end;
end;

Когда я создаю новый кусок памяти из StrNew и отдаю его в 1С. Читал как-то, что вначале любого перехвата нужно поставить петлю, т.е. зациклить процесс, иначе может произойти, что я буду переписывать asm-код, а он параллельно начнет выполняться. раньше думал на это. Но ромикс писал, что это здесь вроде решено.
17. MMF 678 05.11.08 23:14 Сейчас в теме
(15) попробуй, воспроизводится-ли баг на: http://www.onlinedisk.ru/file/30560/
14. JohnyDeath 294 05.11.08 22:36 Сейчас в теме
Отличная идея! +1 ставлю не глядя.
А нельзя ли сделать закладку в настройках 1С, где будет включаться/выключаться этот Tracer? Также можно было б туда вынести и настройку вывода: либо в окно сообщений, либо в файл с указанным путем.
16. O-Planet 6974 05.11.08 22:38 Сейчас в теме
(14) Думал об этом и написал даже в топике. Планирую сделать, но хоцца вначале глюк побороть совместными усилиями. В asm я не тяну, а он скорее всего там.
18. MMF 678 05.11.08 23:19 Сейчас в теме
(17+) это я чето не то закинул, пардон. Не смотрите
19. O-Planet 6974 05.11.08 23:23 Сейчас в теме
(18) Выскочила ошибка сразу, но теперь память не в ноль уходит, а куда-то еще, и это - плюс: "Инструкция по адресу ... обратилась к памяти по адресу 0х0539dab0" Попробую сейчас еще перекомпилировать все...
20. O-Planet 6974 05.11.08 23:24 Сейчас в теме
21. O-Planet 6974 06.11.08 06:39 Сейчас в теме
Кстати, вроде догадался я, как лаг обойти. Надо проверить. И наверняка есть более хорошее решение.
22. Noy 1062 06.11.08 09:36 Сейчас в теме
Хорошая идея! +1
Также поддержу JohnyDeath по поводу включения/выключения
[/i]
P.S. Прикольный глюк - после 10 поста все сообщения идут курсивом - суппорту на заметку.
23. artbear 1158 06.11.08 10:17 Сейчас в теме
OnSave от Ромикса - это что? что-то не припомню
Ссылочку можно?
24. artbear 1158 06.11.08 10:40 Сейчас в теме
(0) ИМХО проблема в том, что 1С пытается самостоятельно удалить память, занятую под текст модуля. А так как память выделяется не 1С-ким new, а самостоятельно в Дельфи, структура памяти не совпадает и труба :(
Можно попробовать использовать системный вызов типа SysGetMem
25. artbear 1158 06.11.08 10:43 Сейчас в теме
(24+) или системный HeapAlloc - в принципе, 1С-кий new обращается к нему же.
26. artbear 1158 06.11.08 10:49 Сейчас в теме
(24+) Или вообще вычислить адрес функции malloc в любой dll-ке (basic, seven) и вызывать именно ее для выделения памяти под текст модуля.
30. O-Planet 6974 06.11.08 13:30 Сейчас в теме
(26) Я из всех вариантов думал только об этом, но схватить malloc из dll не знаю, как. :(
Кстати, по 24... Так понимаю, что 1С пытается освободить память под модуль не всегда в конце работы?
33. artbear 1158 06.11.08 14:28 Сейчас в теме
(30) Да, в 1С юзается сборка мусора на основе ссылок, поэтому объекты освобождаются не всегда сразу же.
27. artbear 1158 06.11.08 11:10 Сейчас в теме
(24+) Или перехватить деструктор CBLModule7 - ??1CBLModule7@@UAE@XZ - и перед выполнением оригинального деструктора обнулять поле текст модуля - dword ptr[ecx+$54] и удалять данный адрес через Дельфовский FreeMem
В этом случае 1C-кий delete (освобождение памяти) вызываться не будет !
28. artbear 1158 06.11.08 11:17 Сейчас в теме
(24+) Сам уже Дельфи довольно сильно подзабыл, к сожалению.
Все на МС С++ тружусь :)
Поэтому сам доработать не могу :(
29. anonimka 06.11.08 12:51 Сейчас в теме
31. O-Planet 6974 06.11.08 13:32 Сейчас в теме
По 27 - сложно, потому что не все модули до этого были переопределены.
32. artbear 1158 06.11.08 14:26 Сейчас в теме
(31) Так ты же можешь в перехватчике AssignAndCompile сохранить адрес this (ecx) в каком-нибудь массиве/векторе и т.д., а в перехватчике деструктора проверить, если адрес this (ecx) есть в этом массиве, выполнять указанную обработку :)
.
У меня в 1С++ именно так и сделано для нормальной обработки/хранения модулей, также основанном на перехвате деструкторе CBLModule :)
nati_dom; Alkore; AMUDAT1; zemochka; Shaman100M; talb; vasiliy_b; novator; buzzzard; thesharkman; tjSolomon; kolga; antz; vitaliy.ermolenko; disa_da; redcat; roger; -=Лысый=-; s_alex_s; homm3; Fenixs; brr; sergiosinicin; ADirks; Jers; ded00786; Булгахтер; lero@riz; Fedorenko; GrayT; jhfrek; support; Pari; Donat; vladG; Sol; Mucmepukc; slavapil; +38 Ответить
34. O-Planet 6974 06.11.08 14:32 Сейчас в теме
(32) Ок. Но на asm код не напишу :(
35. artbear 1158 06.11.08 14:36 Сейчас в теме
(34) Полная аналогия/копия с уже имеющимся кодом для АссигнАндКомпайл :) - ИМХО один в один.
36. O-Planet 6974 06.11.08 14:40 Сейчас в теме
Что-то типа:
asm
mov [ecx111],ecx;
mov eax,[ecx+54h];
mov t,eax;
end;
if InAdrArray(t) then
begin
dispose(t);
asm
mov ecx, [ecx111];
mov eax, 0;
mov dword ptr[ecx+$54], eax;
end
end;

?
37. O-Planet 6974 06.11.08 14:47 Сейчас в теме
А в Init -

pm.DllNameToPatch:='Basic.dll';
pm.DllNameToFind:='seven.dll';
pm.FuncNameToFind:='??1CBLModule7@@UAE@XZ';
pm.NewFunctionAddr:=@NewCBLModule7;
pm.Patch;

?
38. artbear 1158 06.11.08 14:47 Сейчас в теме
39. artbear 1158 06.11.08 14:55 Сейчас в теме
(38) было к 36
(37) pm.DllNameToPatch:='Basic.dll';
pm.DllNameToFind:='seven.dll';
а почему разные длл-ки? только seven.dll нужно вроде бы.
40. O-Planet 6974 06.11.08 15:15 Сейчас в теме
(39) Ненаю. Я взял так, как у Ромикса в OnSave. Кстати, вот на нее ссылка: http://www.x-romix.narod.ru/vk_OnSave.rar
41. O-Planet 6974 06.11.08 15:19 Сейчас в теме
Сейчас клиенту отправлю работу и буду все это пробовать...
42. Abadonna 3834 06.11.08 15:35 Сейчас в теме
Ну во! Не шпингале... Со спокойно душой плюсик поставлю ;)
43. O-Planet 6974 06.11.08 15:43 Сейчас в теме
(42) Ну не знаю... По трудоемкости и набору идей оно намного менее интересно, вообще-то.
44. Abadonna 3834 06.11.08 15:44 Сейчас в теме
(43)Это потому ка тык ромиксовскую взял почти готовую. Один фиг, мне это больше импонирует
45. vkr 101 06.11.08 17:19 Сейчас в теме
Помереть - не встать !!! +5 баллов !!!
А то задолбало модули проведения отслеживать... Ж8-)))
46. CheBurator 06.11.08 18:13 Сейчас в теме
> умная трассирочка
видимо кассирочка покоя не дает!
+1
47. CheBurator 06.11.08 18:14 Сейчас в теме
зачетная вещь.. частенько мне ее не хватало...
99. Шёпот теней 1760 07.11.08 09:44 Сейчас в теме
класс!!!

нет ничего дороже идеи... думаю кто голосовал "+" должны проголосовать и за fixin-а... хотя он и имел ввиду другую трассировку (48) ...

вооо-оо-от мнение...
49. jhfrek 185 06.11.08 20:42 Сейчас в теме
Интересная деталь:
Я загрузил эту ВК в почти чистую базу.
Там все лишь одна обработка (это программа для расчёта по оплате электроэнергии для домашней бухгалтерии) :-)
Дело не в этом.
Глобальный модуль там чистый. Ну и воткнул я туда это:
Код
Перем Tracer1C;
//_____________________________________
Процедура ПриНачалеРаботыСистемы()
    ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"Tracer1C.dll");
    Tracer1C=СоздатьОбъект("AddIn.Tracer1C");
    Tracer1C.Open();
КонецПроцедуры  
//_____________________________________
Процедура ПриЗавершенииРаботыСистемы()
    Tracer1C.Close();
КонецПроцедуры 
Показать полностью

dll в базу закинул.
Но когда запускаю 1С он всегда выкидывает это окно и закрывается, то есть никаким образом нельзя протестировать ВК.
А вот когда я это закинул в типовую ТиС - работать стало.
Может действительно есть здесь знатоки которые доработают эту ВК до ума.
Вешь очень полезная!!! Очень хотелось бы чтобы она работала идеально.
50. O-Planet 6974 06.11.08 21:22 Сейчас в теме
(49) Доработают. Сейчас проверю все то, что говорили с artbear, и если оно сработает, то считай, что сделали, а если нет, то у меня есть запасной ход.

<чуть слышно размышляя> Кстати, мож правда имеет смысл в Трассирочку переименовать? %)
51. jhfrek 185 06.11.08 21:52 Сейчас в теме
Трассирочка???
Хммм...
Назвать конечно можешь как хочешь, но думаю это будет немного попахивать маразмом. Tracer 1C - это хорошее название.
Я уверен что и без названия вокруг этого ВК начнут ходить красивые легенды.
52. O-Planet 6974 06.11.08 21:58 Сейчас в теме
(51) Брось. Всего лишь обычный транслятор из GK, кстати, который навернул на OnSave за пару вечеров. Собственно, и на идею-то fixin натолкнул. Я понимаю, что выглядит необычно на фоне отчетиков, но спланировать и реализовать нормальный отчет намного сложнее.
53. jhfrek 185 06.11.08 22:02 Сейчас в теме
Кому как наверное.
Мне например легче написать сложный отчёт, чем это.
54. O-Planet 6974 06.11.08 22:30 Сейчас в теме
Это и обсуждается иногда активно промеж топиков, типа, у кого длиннее: у того, кто пишет ВК или отчеты? Ты правильно сказал, что проще, потому что более знакомо. Но это не означает, что оно - сложнее. Если чел владеет методом, то ВК - проще, потому что они в основном для разрабов и восполняют отсутствие каких-либо функций оболочки. Тут задача вполне конкретна и вопрос чисто технический. Написание отчета требует знания предметной области, плюс - специфики конкретного клиента, плюс - разработать удобную реализацию, учесть возможность доработки. И на фоне всего этого ТЗ бывает достаточно расплывчатым, клиент зачастую не подозревает, что ему надо.
55. vip 06.11.08 22:53 Сейчас в теме
(54) Плюсик за:
- попытку (т.к. ВК состоится только после тестирования и отладки);
- за честное упоминание romix'a (с другой стороны, любая программа это умелое использование API и оберток над ними для достижения нужной цели).

А длиннее у того, кто пишет хорошо. И не важно, что пишет.
И среди ВК бывают перенумераторы.
56. slavapil 130 06.11.08 23:01 Сейчас в теме
Что приходит в функцию CString или PChar ?

Может можно освободить строку созданную 1С и подменить на строку из Delphi которую 1С освободит сама?

Если это CString, то могу поделиться кодом создания его в Delphi.
57. АЛьФ 06.11.08 23:03 Сейчас в теме
Плюнь на Дельфи, перепиши все на VC++ по технологии Rainbow и, возможно, будет толк.
58. slavapil 130 06.11.08 23:27 Сейчас в теме
(56+)
В фунцию вроде приходит CBLModule.
Что в нем по смещению 54h mov eax,[ecx+54h] ?
59. slavapil 130 07.11.08 00:17 Сейчас в теме
Не могу воспроизвести ошибку !!!???

Внешние обработки не перехватывает :(
60. O-Planet 6974 07.11.08 00:22 Сейчас в теме
Хм... Если используется готовая dll, то я там отключил функции дебаггера. По 54h лежит программный модуль, который трассирую.
62. slavapil 130 07.11.08 00:36 Сейчас в теме
(60)
Использую исходники, правда Delphi 2006 :)

54h это что-то в CBLModule, интересно что именно там, CString или PChar?

61. slavapil 130 07.11.08 00:32 Сейчас в теме
Может так:

function c_malloc(size: Integer): Pointer; cdecl; external 'msvcrt.dll' name 'malloc';

procedure c_free(p: Pointer); cdecl; external 'msvcrt.dll' name 'free';
65. O-Planet 6974 07.11.08 00:52 Сейчас в теме
То, о чем говорили с artbear не сработало. Предполагаю свои кривые ручонки. Но кому интересно, выкладываю отдельно AddInObj.pas

(61) А где с_free вызвать? Оно по ходу вызывается в 1С. Попробую сейчас с с_malloc...

Кстати, MMF прислал сейчас dll, которая стала в 2 раза меньше размером, и по ходу не глючная ;)
67. slavapil 130 07.11.08 01:00 Сейчас в теме
(65)
с_free вызвать для того что 1С уже хранит.

А с_malloc для своей строки вместо t.

Может MMF, поделится исходником?
63. slavapil 130 07.11.08 00:44 Сейчас в теме
Если там CString то:

CString = PChar;

function c_malloc(size: Integer): Pointer; cdecl; external 'msvcrt.dll' name 'malloc';

procedure c_free(p: Pointer); cdecl; external 'msvcrt.dll' name 'free';

function CString_Create(capacity: integer): CString;
var p: Pointer;
begin
p := c_malloc(capacity + 13);
FillChar(p^, capacity + 13, 0);
result := Pointer(Longword(p) + 12);
PInteger(p)^ := 1;
PInteger(Longword(p) + 4)^ := capacity;
PInteger(Longword(p) + 8)^ := capacity + 13;
end;

function CString_Init(cstr: CString; const s: string): CString;
begin
if cstr = nil then begin
result := CString_Create(Length(s) + 1);
end else
if PInteger(Longint(cstr) - 8)^ <= Length(s) then begin
CString_Done(cstr);
result := CString_Create(Length(s) + 1);
end else begin
result := cstr;
end;
StrCopy(result, PChar(s));
end;

procedure CString_Done(var cstr: CString);
begin
if cstr <> nil then begin
c_free(Pointer(Longword(cstr) - 12));
cstr := nil;
end;
end;
nati_dom; guns1800; AMUDAT1; tonyz; Shaman100M; talb; fos; vasiliy_b; meser; kav; Americanz; novator; buzzzard; thesharkman; das; Valet; tjSolomon; bdimas; andrey64; kolga; antz; Parodist; Smaue; disa_da; aikosyapr; redcat; vadver; roger; s_alex_s; homm3; brr; sergiosinicin; anton905; ded00786; Sigrlami; ss; Булгахтер; lero@riz; Fedorenko; GrayT; jhfrek; support; Pari; Donat; dancer; qwak; NoMax; vladG; Mucmepukc; IamAlexy; O-Planet; +51 Ответить
103. slavapil 130 07.11.08 10:54 Сейчас в теме
Так как там CString, стоит использовать его, пример (63).

Планируется трассировка внешних обработок/отчетов (.ERT)?
64. CheBurator 07.11.08 00:49 Сейчас в теме
> что и без названия вокруг этого ВК начнут ходить красивые легенды.
..угум.. типа задолбали Опланета на инфостарте до того, что достал Опланет из-под полы свой инструмент и показал, что есть еще ягоды в ягоди..тьфу, порох в пороховницах...
;-)
66. O-Planet 6974 07.11.08 00:57 Сейчас в теме
(64) Просто удачно совпали праздники с отсутствием у меня на их период инета и с профукованием всвязи с этим хорошего заказа, вот и отдыхаю от 1С чуть-чуть :)
68. O-Planet 6974 07.11.08 01:06 Сейчас в теме
Может и поделится. Но пока молчит :)
69. O-Planet 6974 07.11.08 01:23 Сейчас в теме
ЫЫЫ!!! А с c_malloc вроде все ОК РАААББОООТТАААЕЕТТТ!!!! :))))
71. slavapil 130 07.11.08 01:48 Сейчас в теме
(69) Это замечательно ;)
Но если там CString, то может слететь :(

Artbear, что там CString или PChar ?
72. O-Planet 6974 07.11.08 01:53 Сейчас в теме
(71) Вообще, я взял из того, что ты написал, всего лишь function c_malloc(size: Integer): Pointer; cdecl; external 'msvcrt.dll' name 'malloc'; и заменил им StrNew :) Думаю, достаточно, потому что теперь 1) гарантированно попадаю в пространство 1С 2) 1С сама отвечает за удаление. Перехватить очистку не получилось: не силен я в асме
98. artbear 1158 07.11.08 08:26 Сейчас в теме
(71) Вообще там, конечно, CString :)
Но приведенный код вроде как должен работать.
Самый правильный вариант - родные сишные malloc и free.
75. CheBurator 07.11.08 02:05 Сейчас в теме
(69) сколько мало нужно Программеру для счастья ;-)
70. O-Planet 6974 07.11.08 01:47 Сейчас в теме
ОБНОВИЛ ФАЙЛЫ, ПРОВЕРЯЙТЕ
73. slavapil 130 07.11.08 02:00 Сейчас в теме
А кто очистит память зарезервированную 1С?
74. O-Planet 6974 07.11.08 02:02 Сейчас в теме
Она же. Или ты имеешь ввиду те модули, которые я переопределяю, и которые теряются? Хм... Сейчас.
76. CheBurator 07.11.08 02:15 Сейчас в теме
предлагается чтоб была возможность трассировку складывать не в табло сообщений а в тектсовый файли (задаваемый, например, в качестве "параметра" при инициализации ВК или в ини-файле)...
77. O-Planet 6974 07.11.08 02:19 Сейчас в теме
Обновил.

По поводу перспектив развития.
___________________________
1. Хочу добавить возможность управлять форматом вывода объектов на уровне 1С, а именно, если в модуле имеется функция Трассирочка(Сообщение,ИмяПеременной,ЗначениеПеременной), то передавать все сообщения и объекты ей

2. Планирую добавить в Сервис настройку, а именно:
- вкл/откл трассировки
- вкл/откл сообщений трассировки по входу в процедуры
- вкл/откл сообщений трассировки по выходу из процедуры
- вкл/откл сообщений трассировки по входу в условные операторы
- вкл/откл сообщений трассировки по присвоенным значениям

Вот думаю, имеет ли смысл добавить сообщения на итерациях цикла?
78. CheBurator 07.11.08 02:30 Сейчас в теме
(77) в целом - да...
но будет ли учтено, что если в функции стоит МОЯ ДИРЕКТИВА "TRACEOFF" - то трассировать, допустим, эту процедуру/функцию (и все вложенные) - не надо...???
+ отсюда сразу же возможность учета/игнорирования МОИХ ДЕРЕКТИВ.
+ управление хочется осущетвлять извне - т.е. допустим выключена трассировка - идет.. опа "кривизна" пошла - а перезапускать накладно - извне в ини файл подсовываю управляющую дитрективу - опа трассировка включилась...
79. CheBurator 07.11.08 02:34 Сейчас в теме
+ пожелание: более полно формализовать трассировочные сообщения, для облегчени я последующего парсинга
..
на рис.1 - ошибка:
>> вход в функцию ПересчетСуммыВзаиморасчетов
<< выход ИЗ ПРОЦЕДУРЫ
133. CheBurator 10.11.08 03:58 Сейчас в теме
мой (79) пост - что по поводу ошибки на рис.1
???
135. O-Planet 6974 10.11.08 03:58 Сейчас в теме
136. CheBurator 10.11.08 04:06 Сейчас в теме
80. CheBurator 07.11.08 02:37 Сейчас в теме
в случае вывода значений агрегатных типов хочется иметь не просто типа
возвращаемое значение: USD, а также и "ИД" объекта, позволяющий его быстро локализовать - ЗначениевСтрокуВнутр (???)
81. CheBurator 07.11.08 02:41 Сейчас в теме
.. или в виде
возвращаемое значение: Петров :: Справочник.Контрагенты :: ЗначениевстрокуВнутр
возвращаемое значение: Поступление (купля-продажа) :: Перечисление.ВидыОпераций.Закупка :: ЗначениевстрокуВнутр
82. CheBurator 07.11.08 02:41 Сейчас в теме
вообще, конечно, если доведешь до ума - это тянет на лучшую разработку/идею года.
убедительная просьба - не кидать на полпути!!!
84. O-Planet 6974 07.11.08 02:45 Сейчас в теме
(82) Вообще, лучшая идея года - впереди. Даже две :) Ты забыл о ... <в поисках Vip-а>

83. O-Planet 6974 07.11.08 02:43 Сейчас в теме
Формат выдаваемых сообщений предлагайте. Готов рассмотреть варианты. Можно вообще предложить настраиваемый формат, типа "включить в строку ЭТО"

>> но будет ли учтено, что если в функции стоит МОЯ ДИРЕКТИВА "TRACEOFF" - то трассировать, допустим, эту процедуру/функцию (и все вложенные) - не надо...???

Это уже реализовано. только пиши по тексту с пробелом:
//TRACER OFF
...
//TRACER ON

>> в ини файл подсовываю управляющую дитрективу - опа трассировка включилась
это надо обсуждать
85. O-Planet 6974 07.11.08 02:48 Сейчас в теме
Если разработка действительно окажется кому-то полезной, то справедливости ради стоит упомянуть fixin-а. если бы он не создал тот топик, за который, кстати, нахватал минусов, то ничего бы не было, ни моей идеи, ни дружной работы по устранению бага.
86. CheBurator 07.11.08 03:13 Сейчас в теме
> Формат выдаваемых сообщений предлагайте.
думайте! думайте!
должно быть легко идентифицируемо/отделяемо
- служебная часть сообщения (вход в проц, выход, условие иначе и т.д.)
- содержательная часть сообщения, причем чтобы понять к чему относится содержательное часть - не лезть вверх по служебным сообщениям... и т.д.
87. CheBurator 07.11.08 03:16 Сейчас в теме
на итерациях цикла - только если включать где-то принудительно, в прочих случаях типа:
>>> вход в цикл старт=1 стоп=873
<<< выход из цикла при старт = 530 (т.е. например сработало "прервать")
88. CheBurator 07.11.08 03:32 Сейчас в теме
+ возможно опционально задавать настройку отступов ступеньками - таким образом оттрассировав можно получить вполне себе читабельный код!
89. CheBurator 07.11.08 03:33 Сейчас в теме
ОФИЦИАЛЬНО ЗАЯВЛЯЮ СВОИ ПРАВА НА СЛОГАН
"ОТТРАССИРОВАТЬ КАССИРОЧКУ"
!!!
90. Abadonna 3834 07.11.08 03:41 Сейчас в теме
Планет, если ты кроме Result:=';Сообщить("' доделаешь еще возможность (на выбор)
pEvent.ExternalEvent('tracer', КатегорияСобытия, ОписаниеСобытия); на мой взгляд будет истчо лучше ;)
91. O-Planet 6974 07.11.08 04:03 Сейчас в теме
(90) Это получится какая-то жесть. Можно будет смело ставить клиентам и при умелом обращении, обычная трассировка превращается в планомерное убисство. Хочет впечатлительная девушка, например, открыть накладную, а накладная на ее глазах помечается на удаление, из нее пропадают строки, меняются цифры...
Оставьте свое сообщение

См. также

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

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

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

1 стартмани

02.08.2019    1388    4    phsin    18       

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

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

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

1 стартмани

29.04.2019    1787    1    Palmer1976    0       

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

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

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

1 стартмани

13.07.2018    4886    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    9667    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    30428    269    asdfghgghjdhg    103       

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

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

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

1 стартмани

08.05.2017    19477    74    crimeait    2       

1sqlite reborn 34

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

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

1 стартмани

07.11.2016    19742    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    10408    13    DasIsFantastich    4       

Компоненты распознавания и печати штрих-кодов 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    58717    87    igorberezhnov    87       

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

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

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

1 стартмани

14.04.2015    15657    2    Serginio    1       

Использование сборок .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    70293    264    Serginio    67       

Tray Informer 48

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

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

1 стартмани

04.09.2013    21988    58    O-Planet    78       

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

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

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

1 стартмани

11.07.2013    15292    23    simply1    14       

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

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

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

1 стартмани

18.06.2013    19700    64    sandyanf    3       

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

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

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

1 стартмани

10.11.2012    5310    44    e-rogov    4       

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

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

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

1 стартмани

23.10.2012    27338    141    via    18       

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

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

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

1 стартмани

17.08.2012    8446    7    zebr    1       

Beep 1

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

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

1 стартмани

18.04.2012    6722    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    9672    25    pophmail    14       

vCalendar в 1С 7

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

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

1 стартмани

18.10.2011    7367    15    Amel2010    4       

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

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

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

1 стартмани

18.10.2011    5993    33    stepman3    8       

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

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

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

1 стартмани

26.09.2011    9403    45    curdate    5       

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

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v77::ОУ 1С7:ТиС Россия Абонемент ($m) Разработка внешних компонент Весы

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

1 стартмани

07.09.2011    12091    114    ectoneptune80    12       

Skype+1C (для 7.7) 54

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

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

1 стартмани

14.04.2011    19530    423    Lepochkin    22       

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

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

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

2 стартмани

31.03.2011    33509    417    maxpiter    82       

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

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

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

1 стартмани

29.09.2010    3547    61    pokemon99    11       

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

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

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

1 стартмани

22.09.2010    18836    143    Djelf    13       

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

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

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

1 стартмани

26.08.2010    15486    75    spock    13       

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

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

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

1 стартмани

17.08.2010    20499    173    venger    5       

Загрузка прайс-листа с картинками из Excel и работа с буфером обмена 19

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

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

1 стартмани

31.07.2010    26238    592    salexdv    32       

Сжатие JPEG и наложение на него водяного знака 42

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

Искал чего-нибудь простое для решения вопроса "Как сжать JPEG и наложить водяной знак". То ли плохо искал, то ли еще никому это не надо было (что вряд ли), посему наваял свое.

1 стартмани

16.07.2010    18132    369    maxpiter    55       

1C + .NET Framework 2.0 12

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

Данный компонент, позволяет использовать сборки (или исходный код C#) .NET Framework 2.0 в среде 1С:Предприятие. Как известно на базе Framework сейчас работает большинство приложений под платформу Windows, поэтому я считаю актуальным иметь такую возможность из 1С. Преимущества: решение любых системных задач без использования WMI, и использования готовых решений в виде сборок .NET.

1 стартмани

16.04.2010    5854    106    Tone2010    39       

Еще раз о чтении динамических WEB-страниц 3

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

В предлагаемой вашему вниманию обработке реализованы 7 вариантов чтения содержимого динамических WEB - страниц (для 1С-Предприятия 7.7) средствами внешних компонент Parser.dll, ADDIN.dll и FormEx.dll, а в сопутствующей ей статье описаны результаты их применения.

1 стартмани

01.02.2010    11276    86    mai    13       

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

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

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

1 стартмани

01.07.2009    29218    342    vandalsvq    102