Компонента для прямого чтения/записи данных из файлов баз данных .1CD v.1.4.1 от 08.06.2020 (Windows/Linux)

06.06.20

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

Компонента позволяет работать с физическим содержимым таблиц файловых баз данных 1С ( файлы .1CD ).

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

Наименование Файл Версия Размер
1CDLib
.zip 2,33Mb
2580
.zip 1.4.1 2,33Mb 2580 Скачать

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

Возможности:
- получение массива таблиц БД;
- сохранение данных таблиц в файлы ("сырые" данные!);
- загрузка данных таблиц из файлов ("сырые" данные!);
- переименование таблиц, установка им новых описаний;
- создание, удаление таблиц;
- получение массива полей таблицы, подсчёт длины одной записи;
- навигация по записям таблицы, чтение/запись полей и BLOB-полей;

- сохранение/загрузка BLOB-полей в файл;

- добавление, удаление записей;

- получение примитивной информации по метаданным;

- поддержка разных целевых платформ - Windows32/64, Linux64.

Также возможна работа с базой данных (и, также, с произвольными двоичными файлами блочной структуры) на "низком" уровне: реализованы методы по чтению/записи числовых и строковых данных из блоков файла.

Примечание по функциям изменения записей таблиц:

Текущая версия не поддерживает перестроение индексов при добавлении новых записей, удалении записей или изменении индексируемых полей у существующих записей. Решение - принудительная переиндексация со стороны платформы 1С (из конфигуратора, или при помощи chdbfl.exe с установленной галкой "Исправлять обнаруженные ошибки")


В архиве содержатся: непосредственно сам файл компоненты, описание свойств и методов, и пример обработки (УФ) для 1С 8.2, демонстрирующий возможность чтения списка таблиц БД, сохранения их содержимого в файлы в папку "Objects{timestamp}", удаление таблиц, восстановление их содержимого из файлов. Внимание! Используйте данную обработку только на тестовых копиях баз, не подвергайте рабочие базы риску разрушения.

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

Условия использования и распространения: см. файл readme.txt

Аналоги:
Ближайшим аналогом является:
- утилита Tool_1CD //infostart.ru/public/19633/
Однако компонента не позиционируется ни в настоящем, ни в будущем, как замена данной утилите, а является, скорее, дополнением к имеющемуся набору инструментов, и отличается идейно: целью является не предоставление некоего визуального интерфейса, а предоставление программного интерфейса для технических специалистов.


Благодарности:
Выражаю особые благодарности участнику awa, который провёл неоценимую работу по исследованию структуры файловой БД, и изложил результаты в своих статьях
//infostart.ru/public/19734
http://code.google.com/p/restoration-base-1c8/wiki/1CD_format_brief

участнику Pasha1st за статью //infostart.ru/public/536343/

участнику vde69 за создание проекта системы восстановления файловых баз 1С http://code.google.com/p/restoration-base-1c8/
а также участнику v77 за публикацию //infostart.ru/public/81644/ , которая позволила сэкономить немного времени при разработке компоненты.

История версий:

======================================
Версия 1.4.1.0 от 08.06.2020
======================================
* исправлена критическая ошибка записи RootEntry для формата БД версии 8.3.8

 

======================================
Версия 1.4.0.1 от 06.06.2020
======================================
+ поддержка формата БД версии 8.3.8
+ поддержка платформы linux64
* исправлены некоторые ошибки

См. также

Медиадисплей. Рекламный информационный монитор для покупателя.

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Монитор покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Можно использовать в качестве графического меню-борда в кафе и видеовывески. Управление выводом на телевизор через hdmi-приставку на базе Windows или Android. В качестве устройства отображения можно использовать Android-планшеты, фоторамки с Android, монитор любого Windows-компьютера, доступного по сети. Настраивается ЛЮБОЙ ДИЗАЙН экрана!

16800 руб.

30.05.2017    52055    34    69    

43

Внешняя компонента для сканирования (замена TWAIN-компоненты БСП) (Native Win 32/64)

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

2400 руб.

12.05.2020    26160    131    99    

82

Внешняя компонента печати PDF (Native Win 32/64)

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    35011    104    123    

111

Мастер создания внешних компонент 1С (технология COM) для DELPHI 6/7/8/2005/2006/2007/2008/2010/XE/XE2/XE3

Разработка внешних компонент Платформа 1С v8.3 Платные (руб)

Средство для сверхбыстрой разработки внешних компонент 1С:Предприятия 7.7 и 8 по технологии COM на всех версиях DELPHI, начиная с 6.

2000 руб.

28.03.2013    53968    35    14    

68

Внешняя компонента для подключения 1С к телефонии Asterisk

Разработка внешних компонент Телефония, SIP Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    44897    116    64    

60

QR-код с логотипом компании (обычная и управляемая форма)

Разработка внешних компонент Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Как известно, стремление сделать свою рекламную продукцию запоминающейся и выделяющейся — верный путь к успеху. Сегодня, мы поговорим с вами о том, что можно сделать с обычным черно-белым QR-кодом, чтобы он стал более живым и привлекательным. Если вам не терпится попробовать сделать QR-код с логотипом компании, то эта обработка для вас!

2400 руб.

22.06.2016    30821    4    4    

8

Внешняя компонента 1С и С++. Продолжаем разговор.

Разработка внешних компонент Платформа 1С v8.3 Бесплатно (free)

А давайте запилим 8.3.26 до релиза, или оповещение с сервера...

19.02.2024    3902    starik-2005    28    

52

Внешние компоненты 1С и язык C++

Разработка внешних компонент Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Некоторые практические аспекты создания внешних компонент на языке С++ для платформы 1С 8.3++.

26.01.2024    4680    starik-2005    32    

39
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. andrewks 1367 18.12.12 10:42 Сейчас в теме
забыл прикрепить к файлам pdf-версию описания свойств и методов (для тех, у кого нет возможности открыть файл формата odt). прикрепляю здесь
Прикрепленные файлы:
Описание свойств и методов.pdf
4. r0610201 314 18.12.12 13:49 Сейчас в теме
(1) при вызове УстановитьВнешнююКомпоненту выскакивает ошибка:

"Установка внешней компоненты не выполнена. В процессе установки произошла ошибка".

И все. Попробовал запихнуть это дело в общий макет и вызвать:

УстановитьВнешнююКомпоненту("ОбщийМакет._1CDLib");


но все равно тоже самое. Как можно это дело исправить?
6. andrewks 1367 18.12.12 14:28 Сейчас в теме
(4) r0610201, Вы не из веб-клиента подключаете?
9. r0610201 314 18.12.12 14:37 Сейчас в теме
(6)

нет, обычный тонкий клиент, управляемое приложение. Сразу вопрос: а можно прочитать данные таблицы, не сохраняя их в файл на диске? Нужно: спозиционироваться на нужную запись по ее номер и прочитать по имени столбца значение.
10. andrewks 1367 18.12.12 14:43 Сейчас в теме
(9) r0610201,
нет, обычный тонкий клиент, управляемое приложение

очень странно, а какой релиз платформы? у меня в тонком клиенте мой вариант отрабатывает нормально, проверял под 8.2.15 и 8.2.16

Нужно: спозиционироваться на нужную запись по ее номер и прочитать по имени столбца значение.

пока нет, данный функционал в настоящее время "under construction". думаю, где-то через недельку неспешно допилю, если никакого срочного форс-мажора не будет
104. andrewks 1367 13.01.13 22:50 Сейчас в теме
(9) r0610201, интересующий Вас функционал реализован в новой версии
2. German 413 18.12.12 12:02 Сейчас в теме
Давненько не было "жарко" посмотрим
3. Abadonna 3957 18.12.12 12:55 Сейчас в теме
Подправь код в обработке:
МакетКомп=ПолучитьМакетКомпоненты();
	СсылкаКомп=КаталогВременныхФайлов()+"1CDLib.dll";
	Файл=Новый Файл(СсылкаКомп);
	Если Не Файл.Существует() Тогда
		МакетКомп.Записать(СсылкаКомп);
	КонецЕсли;

Иначе конфликт между захваченным 1С файлом ВК и попыткой его записать про повторном открытии обработки в том же сеансе:

{Форма.Форма.Форма(164)}: Ошибка при вызове метода контекста (Записать)
МакетКомп.Записать(СсылкаКомп);
по причине:
Ошибка совместного доступа к файлу 'C:\Documents and Set.....
andrewks; +1 Ответить
7. andrewks 1367 18.12.12 14:30 Сейчас в теме
(3) Abadonna, ага, есть такое дело.

я изначально вообще хотел через временное хранилище подключать, во избежание конфликтов подобного рода, но что-то не взлетело. вот моя ветка, может, подсоветуете что-нибудь http://forum.infostart.ru/forum26/topic76354/
18. andrewks 1367 18.12.12 16:12 Сейчас в теме
(3) Abadonna, остановился на таком варианте кода:

	МакетКомп=ПолучитьМакетКомпоненты();
	СсылкаКомп=КаталогВременныхФайлов()+"1CDLib.dll";
	Попытка
		МакетКомп.Записать(СсылкаКомп);
	Исключение
	КонецПопытки;
	КомпУст=Ложь;
	Попытка
		КомпУст=ПодключитьВнешнююКомпоненту(СсылкаКомп,"T1CDLib",AddInType.Native);
	Исключение
		Сообщить("Произошла ошибка при подключении компоненты!");
	КонецПопытки;

Показать


чтобы не было проблем с обновлением версии самого файла компоненты в будущем
faker1980tyumen; +1 Ответить
45. Abadonna 3957 18.12.12 23:36 Сейчас в теме
(18)
чтобы не было проблем с обновлением версии самого файла компоненты в будущем

IMHO, лучше так:
Проверяем наличие КаталогВременныхФайлов()+"1CDLib.dll";, удаляем его без сомнений, и уж потом
КомпУст=ПодключитьВнешнююКомпоненту(СсылкаКомп,"T1CDLib",AddInType.Native);
46. andrewks 1367 18.12.12 23:53 Сейчас в теме
(45) Abadonna, дык не даст удалить, если файл уже захвачен 1синой. проще попробовать перезаписать в попытке
47. Abadonna 3957 19.12.12 00:05 Сейчас в теме
(46) Ага, это я лопухнулся ;)
P.S. Вообще, чую, надо в свои ВК добавить метод по деблокировке файлов, и, в случае загрузки через обработки, деблокировать и удалять в ПриЗакрытии
48. Abadonna 3957 19.12.12 03:12 Сейчас в теме
(46) +/47/
Есть интересная API MoveFileEx(PAnsiChar(FileName),PAnsiChar(NewFileName), MOVEFILE_REPLACE_EXISTING)- позволяет переименовать залоченный файл.
СсылкаКомп=КаталогВременныхФайлов()+"1CDLib.dll";
СсылкаКомпН=КаталогВременныхФайлов()+"_1CDLib.dll";
// -> метод Miracle--
Файлы.ПереименоватьФайл(СсылкаКомп,СсылкаКомпН);
// <- метод Miracle--
МакетКомп.Записать(СсылкаКомп);

Показать

Раз 15 перезапустил в таким кодом - все, как в аптеке ;)
P.S. "В самой себе", естественно, не поможет - оно ж не загружено еще...
49. hogik 443 19.12.12 03:40 Сейчас в теме
(48)
"позволяет переименовать залоченный файл"(с)
Нет.
Можно только открытый с GENERIC_READ и FILE_SHARE_DELETE.
Так открываются DLL, EXE...
Один из способов удалить гадость из системы - переименовать, перезагрузиться, удалить.
50. Abadonna 3957 19.12.12 04:08 Сейчас в теме
(49) hogik, умный ты, однако, глянь на кратинку
База открыта, переименовано обработкой с кодом
&НаКлиенте
Процедура Команда1(Команда)
	Файлы.ПереименоватьФайл("d:\СервисМ Работа с клиентами\MiracleNative.dll","d:\СервисМ Работа с клиентами\_MiracleNative.dll");
КонецПроцедуры

Давно бы пора привыкнуть, что я не пишу то, чего не проверил. Переименовать даёт,удалить - нет
Если не въехал, поясняю: MiracleNative.dll - залоченный базой файл ВК, вызывается метод самой же ВК, им же и переименовывается, в процессе работы базы (ВК).
Прикрепленные файлы:
51. hogik 443 19.12.12 04:13 Сейчас в теме
(50)
Умный. :-)
Я опроверг твое слово "залоченный".
Т.е. возможность переименовать определяется способом открытия, а не блокировкой.
Читай внимательнее. Я не опровергаю возможности переименовать. Специально привел пример про удаление "гадости" из системы... ;-)
53. Abadonna 3957 19.12.12 04:28 Сейчас в теме
(51) hogik, интересно, что ты опроверг во фразе "позволяет переименовать залоченный файл"
Файл залочен - да. Позволяет переименовать - да, да и да.
54. hogik 443 19.12.12 04:31 Сейчас в теме
(53)
Эх. Мало ты разрабатывал программ-гадостей. :-)
Я всегда блокирую DLL и EXE, чтобы ты не мог их переименовать. :-)

P.S.
Файл залочен - да.
НЕТ !!!

P.P.S.
Всё.
Давай не будем грузить тему.
Разобрались в "терминах"... ;-)
faker1980tyumen; +1 Ответить
55. Abadonna 3957 19.12.12 05:10 Сейчас в теме
(54) hogik, не путай файл, конкретно залоченный API LockFile, и файл, залоченный приложением.
И почему, собственно, тему не грузить? Тут что, юзверьки на "поздравлялку" собрались? Тут ВК, и проггеры должны быть разрядом чуть повыше, чем "одноэснеги"
56. hogik 443 19.12.12 05:36 Сейчас в теме
(55)
Аркадий.
Давай не будем выяснять смысл слова "залоченный" ? :-)
Еще раз. Возможность переименовать открытый файл определяется режимом его открытия.
57. andrewks 1367 19.12.12 07:27 Сейчас в теме
(50)
Переименовать даёт,удалить - нет

да, с удалением засада. провёл эксперимент: при запущенном сеансе, удерживающем dll, снимаю блокировку Unlocker'ом, удаляю файл, запускаю повторно обработку - 1сина валится.
видимо, повторная загрузка компоненты не выполняется в любом случае, даже если дескриптор загруженной ранее уже "протух"
74. hogik 443 20.12.12 01:53 Сейчас в теме
(57)(59)
Аркадий и andrewks.
Вот, чего не понимаю. ;-)
Извините, расскажу на примере "семерки".
Запускаю сессию 1С-а (локально). Запускаю Unlocker. Делаю выбор каталога BIN. Вижу только "залоченные" файлы. Среди этих файлов только ВК. Но не все, что я загрузил в конфигурации. Половина. ;-) Никаких других файлов в списке нетУ. Естественно, переименовать "залоченные" файлы не удается. Все/любые остальные - легко.
Дык, чего не могу понять. Почему в списке именно эти файлы? Загружаю все ВК одинаковыми операторами. Лежат они только в каталоге BIN.
Чего/как/где можно подумать/почитать/посмотреть для осознания эТТого явления? ;-)
76. andrewks 1367 20.12.12 07:31 Сейчас в теме
(74) hogik, я Вам больше скажу. у меня в один день сабжевая длл-ка компилилась без закрытия сенса и обработки, из которых она подгружалась с фиксированного места на диске, без макетов и прочего. и, главное, после закрытия и открытия обработки, но без закрытия сеанса у меня подгружалась новая версия компоненты.
на след.день с этой же обработкой с открытым сеансом компилятор уже не мог записать длл-ку - выдавал ошибку.

вот как это можно объяснить?
5. r0610201 314 18.12.12 14:13 Сейчас в теме
Отвечаю сам себе: удалось установить и подключить только из общего макета, в котором зазипованный каталог с dll и манифестом. Зип прилагаю к этому сообщению, вдруг кому пригодится.
Прикрепленные файлы:
1CDLib.zip
8. andrewks 1367 18.12.12 14:32 Сейчас в теме
(5) r0610201, этот вариант (размещение в общем макете) я рассматривал, но отказался от него, чтобы была возможность полностью автономной работы, без привязки к конфе и без правки самой конф
11. r0610201 314 18.12.12 14:52 Сейчас в теме
Пробовал на 8.2.16.368 и на 8.3.2.163. Впрочем, раз интересующий меня функционал еще не реализован, но ожидается, то я подожду :)
12. andrewks 1367 18.12.12 14:57 Сейчас в теме
(11) r0610201,
Пробовал на 8.2.16.368

странно, сейчас как раз на этом релизе проверил свой вариант - всё отработало. непонятный какой-то глюк, посмотрим, может, ешё у кого-то вылезет
13. r0610201 314 18.12.12 15:08 Сейчас в теме
Возможно, это еще от разрядности системы зависит. У меня вроде как 64.
14. andrewks 1367 18.12.12 15:26 Сейчас в теме
(13) r0610201, да не должно, по логике, клиенты-то всё равно 32-х разрядные. но проверю
16. andrewks 1367 18.12.12 16:02 Сейчас в теме
(13) r0610201, так и не получилось воспроизвести ошибку. на х64 сервере под тонким клиентом тоже загрузилось без проблем, ошибок не выдало
19. r0610201 314 18.12.12 16:16 Сейчас в теме
(16)

Судя по всему, у bg38th такая же проблема, у меня тоже вываливалась программа, пока не удалось установить компоненту из общего макета.
21. bg38th 18.12.12 16:25 Сейчас в теме
(19) r0610201,
Из общего пока не пробовал.

А вот что в макете в итоге должно быть? Чистая DLL или ZIP с dll и манифестом?
23. andrewks 1367 18.12.12 16:28 Сейчас в теме
(21) bg38th, если в общем макете, то ЗИП
15. bg38th 18.12.12 15:59 Сейчас в теме
Что-то стабильно вышибает платформу на операции ПодключитьВнешнююКомпоненту...
17. andrewks 1367 18.12.12 16:03 Сейчас в теме
(15) bg38th, надо бы больше подробностей - какой релиз платформы, какой клиент запускаете, какая ОС, подробности ошибки
26. bg38th 18.12.12 16:35 Сейчас в теме
(17) И вот ещё что забавно. Если выбрать отладку, то в отладчике (VS) выскочит ошибка "Необработанное исключение в "0x773de6c3" в "1cv8.exe": 0xC0000374: Куча была повреждена.". И если потом в отладчике указать прекратить отладку, то все это хозяйство таки взлетает и работает...
27. andrewks 1367 18.12.12 16:37 Сейчас в теме
(26) bg38th, а с общего макета нормально загружается? что-то засада какая-то у 1Сины с внешними компонентами. на разных версиях Windows разное поведение
29. bg38th 18.12.12 16:43 Сейчас в теме
(27) Гружу из общего макета (заменил МакетКомп=ТекОбъект.ПолучитьМакет("_1CDLib") на МакетКомп=ПолучитьОбщийМакет("_1CDLib");) --- та ж хрень на том же месте. Толстый клиент, управляемое приложение.
32. andrewks 1367 18.12.12 16:50 Сейчас в теме
(29) bg38th, нет, так не пойдёт, у 1Сины ограничения на этот счёт. если ВК загружается из общего макета, то надо прописывать адрес именно общего макета, примерно так: УстановитьВнешнююКомпоненту("ОбщийМакет._1CDLib");

по крайней мере, в СП описано два способа размещения:


Строка, определяющая местоположение внешней компоненты.
В качестве строки может использоваться:
полное имя макета, в котором хранится внешняя компонента в архиве;
URL к внешней компоненте, упакованной в ZIP-архив, в формате, аналогичном ПолучитьНавигационнуюСсылку().


но заставить работать второй способ лично у меня пока не получилось
34. bg38th 18.12.12 16:57 Сейчас в теме
(32) А подключать её такую как?
35. andrewks 1367 18.12.12 17:04 Сейчас в теме
(34) bg38th, ПодключитьВнешнююКомпоненту("ОбщийМакет._1CDLib","T1CDLib");
36. andrewks 1367 18.12.12 17:05 Сейчас в теме
(34) bg38th, попробуйте ещё эту версию, какие сообщения она выдаст при загрузке. может, проблема именно с записью в темп-папку
Прикрепленные файлы:
ExtractObjects.epf
39. bg38th 18.12.12 17:24 Сейчас в теме
(36) "Необработанное исключение в "0x773de6c3" в "1cv8.exe": 0xC0000374: Куча была повреждена." И как и прежде, если указать "Продолжить" то все работает.
41. andrewks 1367 18.12.12 17:37 Сейчас в теме
(39) bg38th, т.е. дело даже не доходит до показа Сообщить()? в клиенте 1с никаких более сообщений не появляется? попробуйте почистить кэш или произвести подключение на другом компьютере, какое-то странное поведение 1сины
42. bg38th 18.12.12 17:45 Сейчас в теме
(41) Кэш почистил. (оба). Та ж хрень на том же месте. На другом компе попробую чуть погодя.

Замечу снова, что если ошибку провести через отладчик (см. выше), то компонента таки оказывается подключенной и работает. И перезапускать при этом внешнюю обработку можно сколь угодно раз - пока не перезапущена платформа, ошибка не проявляется.
43. bg38th 18.12.12 17:45 Сейчас в теме
(41) Не доходит. Просто GPF платформы и всё.
44. bg38th 18.12.12 18:11 Сейчас в теме
(41) На других компах: Server 2003 R2 x32 - It's Ok; Server 2008 R2 x64 - такая же ошибка как и на моем компе. Завтра попробую еще на XP x32.
67. andrewks 1367 19.12.12 16:21 Сейчас в теме
(44) bg38th, глюк с подключением ВК на Win7/Win2008 не исчез? также стабильно проявляется?

ещё прошу отписаться тех, у кого на Win7/Win2008 загрузка компоненты проходит нормально, без ошибок
68. bg38th 19.12.12 16:53 Сейчас в теме
(67) С чего бы ему исчезать? Вышибает как миленькая. С прежней ошибкой Повреждение кучи (heap corruption 0xC0000374)

На XP, кстати, проверил. Работает без ошибок. Похоже проблема возникает именно при инициализации dll и лолко под Win7/Server2008R2 (за висту и server2008 не подпишусь - не пробовал)
69. andrewks 1367 19.12.12 17:01 Сейчас в теме
(68) bg38th,
С чего бы ему исчезать?

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

а запуск сеансов 1с на Win7/Server2008R2 делаете под учётками с админскими правами винды, или под юзерскими?
70. bg38th 19.12.12 17:11 Сейчас в теме
(69) Если платформу не закрывать, то после первого прохода ошибки она уже не возникает. Потому я и сказал что ошибка - на этапе инициализации ВК. Если платформу закрыть - ошибка возникает опять.

Под админскими, но без выключения UAC. Это, кстати, мысль. Сейчас попробую с выключением UAC стартануть...
71. bg38th 19.12.12 17:13 Сейчас в теме
(69) Попробовал. "Запуск от имени администратора" не влюёт. Ошибка возникает.
75. Abadonna 3957 20.12.12 04:56 Сейчас в теме
(68) bg38th,
Windows Server ® 2008 Standard Service Pack 2, х64 - без базаров, сейчас спецом проверил.
В скобках замечу, что прав у меня на том сервере (как, впрочем, и на любых других) - немеряно.
28. andrewks 1367 18.12.12 16:38 Сейчас в теме
(26) bg38th, кстати, а релиз платформы 1с какой у Вас?
30. bg38th 18.12.12 16:43 Сейчас в теме
(28) Я написал в (20) - 8.2.16.368
20. bg38th 18.12.12 16:23 Сейчас в теме
Windows 7 Prof x64
8.2.16.368
И толстый и тонкий (не Web)
Подробности - висниет долго чем-то шарашит и вываливается с предложением перейти в отладку или остановить приложение.
22. r0610201 314 18.12.12 16:27 Сейчас в теме
У меня заработало, когда в общем макете архив zip, содержащий dll и манифест. Этот архив прикреплен к сообщению №5.
24. andrewks 1367 18.12.12 16:28 Сейчас в теме
(22) r0610201, как бы локализовать проблему. у Вас проблема тоже была на Windows 7 x64 ?
31. r0610201 314 18.12.12 16:44 Сейчас в теме
(24)

Да, win7 prof 64.

Но сейчас у меня ошибка уже не выскакивает даже в других базах. Что-то где-то закешировалось, что ли...
33. r0610201 314 18.12.12 16:51 Сейчас в теме
(24)

в журнале вот такая ошибка, не знаю, чем это может помочь:

Имя сбойного приложения: 1CV8C.exe, версия: 8.2.16.368, отметка времени: 0x505341e8
Имя сбойного модуля: ntdll.dll, версия: 6.1.7601.17725, отметка времени 0x4ec49b8f
Код исключения: 0xc0000374
Смещение ошибки: 0x000ce6c3
Идентификатор сбойного процесса: 0x161c
Время запуска сбойного приложения: 0x01cddd1dea13220c
Путь сбойного приложения: C:\Program Files (x86)\1cv82\8.2.16.368\bin\1CV8C.exe
Путь сбойного модуля: C:\Windows\SysWOW64\ntdll.dll
Код отчета: 4b88f5fc-4911-11e2-8fc1-e8039ade11b9
37. andrewks 1367 18.12.12 17:06 Сейчас в теме
(33) r0610201, мистика. ВК тут и не пахнет, 1Сина где-то глючит при общении с WinAPI
25. andrewks 1367 18.12.12 16:31 Сейчас в теме
(22) r0610201, интересно то, что на XP, W2003 x32, W2003 x64 под тонким клиентом спокойно отрабатывает просто ПодключитьВнешнююКомпоненту() безо всяких УстановитьВнешнююКомпоненту,
несмотря на то, что в СП сказано

Для режимов запуска "Тонкий клиент" и "Веб-клиент", компонента должна быть предварительно установлена методом УстановитьВнешнююКомпоненту.
38. r0610201 314 18.12.12 17:11 Сейчас в теме
Самое забавное, что раза с третьего перестает вываливаться и начинает работать :) В общем, шайтан.
40. rеd80 18.12.12 17:27 Сейчас в теме
Значит это не для повседневной работы.
52. Abadonna 3957 19.12.12 04:25 Сейчас в теме
Короче так, чтобы смело грузить ВК из макета в обработке, можно делать в обработке так:
&НаКлиенте
Процедура ПриЗакрытии()	
   СсылкаКомпН=КаталогВременныхФайлов()+"_1CDLib.dll";
   Файлы.ПереименоватьФайл(СсылкаКомп,СсылкаКомпН); // тут метод своей же ВК поставить
КонецПроцедуры
58. andrewks 1367 19.12.12 07:30 Сейчас в теме
(52) Abadonna, оно, конечно, хорошо, но, опять-таки, есть нюанс...

а если 1сина упала во время выполнения, файл-то останется. и всё равно придётся это предусмотреть, и опять выходим к попытке перезаписи. а при наличии оной переименовывать при закрытии уже становится необязательно
59. Abadonna 3957 19.12.12 08:20 Сейчас в теме
(58) тогда уж для полного счастья лучше сперва попытку сперва удалить, а уж потом попытку записать.
тогда в новом сеансе спокойно загрузится ВК последней версии.
Хотя... при перезаписи оно и так обновится..
60. DoctorRoza 19.12.12 10:21 Сейчас в теме
Складывается ощущение, что сие творение может попасть в разряд "для хакера". Безопасность бд резко падает!
61. Abadonna 3957 19.12.12 10:28 Сейчас в теме
(60) Чушь! Как будто более простыми способами ее поломать нельзя
62. bg38th 19.12.12 10:58 Сейчас в теме
(60) DoctorRoza, Нехай сделают управление хранилищем (программное) через платформу - интерес к таким утилям поуменьшится...
63. andrewks 1367 19.12.12 11:33 Сейчас в теме
(60) DoctorRoza, о какой безопасности файловых БД можно вообще говорить? не было её, нет, и, думаю, не будет
64. TitanLuchs 395 19.12.12 14:28 Сейчас в теме
Замечательно, давно хотелось поковыраться в нутре снеговика )))))))
65. OldthiefXXX 153 19.12.12 14:37 Сейчас в теме
Что за проблема?
{Форма.Форма1.Форма(125)}: Значение не является значением объектного типа (SaveTableDataToFile)
FileDB.SaveTableDataToFile(TableName,FileNameDescription,FileNameRecords,FileNameBLOB,FileNameIndexes);
66. andrewks 1367 19.12.12 16:18 Сейчас в теме
(65) OldthiefXXX, у Вас при открытии обработки какие-нибудь сообщения об ошибках возникали?
72. OldthiefXXX 153 19.12.12 18:19 Сейчас в теме
нет ни каких ошибок небыло!
dim_ts71; +1 Ответить
73. andrewks 1367 19.12.12 20:18 Сейчас в теме
(72) OldthiefXXX, приведите, пожалуйста, точную последовательность действий, которые приводят к такому эффекту. у Вас список таблиц заполняется? какой релиз платформы, версия ОС?
77. Kopman 23 20.12.12 08:08 Сейчас в теме
Великолепная штука, вот бы еще функционал получения хотя бы части информации из *.dt. Например версии.
78. OldthiefXXX 153 20.12.12 15:46 Сейчас в теме
Форма обычная, последовательно список. а потом сохранить!
79. andrewks 1367 21.12.12 17:35 Сейчас в теме
(78) OldthiefXXX, как это "Форма обычная"? т.е. вы не обработку-пример запускаете, а свою обработку сделали? тогда прикрепите ей сюда, посмотрю
80. andrewks 1367 24.12.12 23:32 Сейчас в теме
81. bg38th 25.12.12 10:22 Сейчас в теме
(80) Вобщем, те же яйца, вид сбоку. Платформа падает на подключении компоненты с комментарием отладчика "Куча повреждена"
82. andrewks 1367 25.12.12 10:31 Сейчас в теме
(81) bg38th, собственно, на тему загрузки dll-ки я ничего и не исправлял. если у Вас будет как-нибудь немного свободного времени в будущем, и желание потестить, то могу подготовить специальную тестовую сборку длл-ки, чтобы хотя бы выяснить, после какого этапа инициализации у Вас происходит падение
83. bg38th 25.12.12 11:22 Сейчас в теме
(82) Пуркуа бы и не па. Давайте. Только не тяните с этим. У меня может пропасть возможность запускать это на компе с отладчиком.
84. andrewks 1367 25.12.12 16:22 Сейчас в теме
(83) bg38th, сделал тестовый комплект. внутри архива - обработка на УФ и dll-ка. в обработке нужно будет указать тестовую длл-ку (из папки test), также у Win-юзера должны быть права на запись в папку C:\TEMP (в неё будет записываться лог-файл 1CDLib.log)

интересует содержимое этого лог-файла на момент сразу после краха, на момент после продолжения работы через отладчик, и на момент после закрытия сеанса 1С, в котором осуществлялась загрузка длл-ки
Прикрепленные файлы:
test.zip
86. bg38th 25.12.12 16:57 Сейчас в теме
(84)
1)2012-12-25 16:49:55.446: Initialization
2012-12-25 16:49:55.446: GetClassObject() enter
2012-12-25 16:49:55.446: GetClassObject() leave

2) ничего

3) 2012-12-25 16:52:30.659: DestroyObject() enter
2012-12-25 16:52:30.659: DestroyObject() leave
2012-12-25 16:52:30.659: Finalization
87. andrewks 1367 25.12.12 17:35 Сейчас в теме
(86) bg38th, есть над чем подумать. пересобрал с более расширенным логированием, если не сложно, проделайте то же самое
Прикрепленные файлы:
test.zip
88. bg38th 25.12.12 17:51 Сейчас в теме
(87)
1)2012-12-25 17:48:37.531: Initialization
2012-12-25 17:48:37.531: GetClassObject() enter
2012-12-25 17:48:37.531: GetClassObject() leave
2012-12-25 17:48:37.531: _Init() enter
2012-12-25 17:48:37.531: _Init() leave
2012-12-25 17:48:37.531: _setMemManager() enter
2012-12-25 17:48:37.531: _setMemManager() leave
2012-12-25 17:48:37.531: _SetLocale() enter
2012-12-25 17:48:37.531: _SetLocale() leave
2012-12-25 17:48:37.531: _GetInfo() enter
2012-12-25 17:48:37.532: _GetInfo() leave
2012-12-25 17:48:37.532: _RegisterExtensionAs() enter
2012-12-25 17:48:37.532: _RegisterExtensionAs() leave

2) ничего

3) 2012-12-25 17:50:42.963: _Done() enter
2012-12-25 17:50:42.963: _Done() leave
2012-12-25 17:50:42.963: DestroyObject() enter
2012-12-25 17:50:42.963: DestroyObject() leave
2012-12-25 17:50:42.963: Finalization
andrewks; +1 Ответить
89. andrewks 1367 25.12.12 17:59 Сейчас в теме
(88) bg38th, вылет происходит вне кода компоненты, т.е. все функции компоненты отрабатывают, и управление возвращается назад к коду 1С, а далее происходит вылет.
но вот причины падения так и остаются непонятными.
спасибо за содействие. если что придумаю, отпишусь
90. bg38th 25.12.12 18:38 Сейчас в теме
(89) Да. Но причиной вылета является работа кода компоненты так или иначе.

Повторю декрипшн ошибки, возвращаемый отладчиком:
========================================
Необработанное исключение в "0x776fe6c3" в "1cv8.exe": 0xC0000374: Куча была повреждена.
========================================

Погугли про 0xC0000374 "heap corruption". Там забавно.
91. andrewks 1367 26.12.12 08:33 Сейчас в теме
(90) bg38th, нашёл в интерфейсном модуле пару мест, где не совсем корректное общение с памятью. проверьте, пожалуйста. если и этот вариант не прокатит, то больше мыслей нет.
Прикрепленные файлы:
test.zip
92. bg38th 26.12.12 12:06 Сейчас в теме
(91) Увы! :((( Всё то же самое... :((
93. andrewks 1367 26.12.12 14:28 Сейчас в теме
(92) bg38th, жаль...
вот мне подумалось тут, а может мы ищем чёрную кошку в тёмной комнате в то время, когда её там нет?
конкретно: может, дело не в компоненте (или не только в компоненте).

какие есть мысли:
1. попробовать на релизах 1С, отличных от 8.2.16 (на 8.2.15, 8.2.17)
2. попробовать на Win2008 x64 без установленного отладчика (кто знает, может, это он накладывает такой отпечаток?)
3. попробовать запустить при отключенном DEP

также прошу других участников, имеющих доступ к Win7 x64 и Win2008R2 x64, проверить комплект из (91), статистика не повредит, ибо как минимум двое участников в этой ветке уже высказывались, что у них на обозначенных системах компонента загружается без сбоев
96. 1cyku 59 09.01.13 07:58 Сейчас в теме
w2k8 R2 standard x64
1CDLib.log - нет такого файла.
Компоненту брал в (91).
85. kj6370 8 25.12.12 16:41 Сейчас в теме
94. 1cyku 59 28.12.12 08:26 Сейчас в теме
8.2.15.310 Падает

Имя сбойного приложения: 1CV8C.exe, версия: 8.2.15.310, отметка времени: 0x4f838bea
Имя сбойного модуля: 1CDLib.dll, версия: 1.0.2.0, отметка времени 0x00000000
Код исключения: 0xc0000005
Смещение ошибки: 0x0001aff6
Путь сбойного модуля: C:\test\1CDLib.dll
95. andrewks 1367 28.12.12 08:40 Сейчас в теме
(94) 1cyku, просьба:
1. озвучить версию и разрядность ОС
2. привести содержимое C:\TEMP\1CDLib.log на момент сразу после падения
faker1980tyumen; +1 Ответить
97. andrewks 1367 09.01.13 08:08 Сейчас в теме
(94) 1cyku,
Путь сбойного модуля: C:\test\1CDLib.dll

внутри архива - обработка на УФ и dll-ка. в обработке нужно будет указать тестовую длл-ку (из папки test), также у Win-юзера должны быть права на запись в папку C:\TEMP (в неё будет записываться лог-файл 1CDLib.log)

у Вас либо нет папки C:\TEMP, либо у текущего пользователя нет прав на запись в эту папку
98. andrewks 1367 09.01.13 08:09 Сейчас в теме
кстати, за это время тестил компоненту на двух разных компах с Win7 x64 и 1С 8.2.17 - ни одного падения
Оставьте свое сообщение