Компонента для прямого чтения/записи данных из файлов баз данных .1CD v.1.4.1 от 08.06.2020 (Windows/Linux)
Разработка - Разработка внешних компонент
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Предназначается для технических специалистов с целью низкоуровневой работы с данными, восстановления разрушенных БД, извлечения из них оставшихся данных.
На текущий момент реализованы следующие
Возможности:
- получение массива таблиц БД;
- сохранение данных таблиц в файлы ("сырые" данные!);
- загрузка данных таблиц из файлов ("сырые" данные!);
- переименование таблиц, установка им новых описаний;
- создание, удаление таблиц;
- получение массива полей таблицы, подсчёт длины одной записи;
- навигация по записям таблицы, чтение/запись полей и 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С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)
Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.
18300 руб.
30.05.2017 57910 12 71
Разработка внешних компонент Телефония, SIP Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)
5246 руб.
04.05.2018 52207 128 68
Разработка внешних компонент Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)
Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).
5084 руб.
12.05.2020 34963 147 100
Разработка внешних компонент Инструментарий разработчика Разработчик 1С 8.3 Бесплатно (free)
Внешняя обработка проверяет выгрузку конфигурации, расширений и внешних обработок и находит места, где код руками делает то, что платформа умеет штатно: регулярки через COM, пауза пустым циклом, свой хеш и Base64, распаковка архивов программой, буфер обмена через HTML-поле. По каждой находке пишет, доступна ли замена на месте или мешает тонкий клиент.
13.10.2026 1369 146 nedomolkov.ivan 5
Разработка внешних компонент Разработчик 1С:Предприятие 8 Бесплатно (free)
Нативная внешняя компонента для 1С 8 для чтения файлов Excel без установленного Excel и делает это быстро, файл 68МБ загружается в таблицу значений ~1 секунду. Компонента поддерживает чтение двух форматов: Excel 2007+ и Excel 97-2003 Формат файла определяется автоматически по сигнатуре (первые 8 байт файла), а не по расширению. Позволяет открывать XLS и XLSX файлы и получать содержимое листов в виде ТаблицыЗначений или JSON-массива.
03.07.2026 2397 skyadmin 31
Разработка внешних компонент Разработчик 1С 8.3 Бесплатно (free)
В современных корпоративных решениях на платформе 1С:Предприятие 8.3 всё чаще возникает потребность в визуальном моделировании и автоматизации бизнес-процессов с использованием нотации BPMN 2.0. Стандартные средства платформы не предоставляют полноценного редактора BPMN, однако интеграция открытой библиотеки bpmn-js позволяет реализовать интерактивное моделирование бизнес-процессов непосредственно в 1С. В статье рассмотрены архитектура решения, пошаговая инструкция по сборке библиотеки из исходников для WebKit, а также примеры программного взаимодействия между 1С и JavaScript.
03.04.2026 4318 SultanovStas 8
Разработка внешних компонент Разработчик 1С 8.3 Россия Бесплатно (free)
Создать NativeAPI-компоненту для Python-скриптов? Это просто!
20.10.2025 11052 IlyaKuznetsov 10
Разработка внешних компонент Системный администратор Разработчик Стажер Бесплатно (free)
Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!
14.01.2025 8245 bayselonarrend 17
"Установка внешней компоненты не выполнена. В процессе установки произошла ошибка".
И все. Попробовал запихнуть это дело в общий макет и вызвать:
УстановитьВнешнююКомпоненту("ОбщийМакет._1CDLib");но все равно тоже самое. Как можно это дело исправить?
нет, обычный тонкий клиент, управляемое приложение. Сразу вопрос: а можно прочитать данные таблицы, не сохраняя их в файл на диске? Нужно: спозиционироваться на нужную запись по ее номер и прочитать по имени столбца значение.
очень странно, а какой релиз платформы? у меня в тонком клиенте мой вариант отрабатывает нормально, проверял под 8.2.15 и 8.2.16
пока нет, данный функционал в настоящее время "under construction". думаю, где-то через недельку неспешно допилю, если никакого срочного форс-мажора не будет
МакетКомп=ПолучитьМакетКомпоненты();
СсылкаКомп=КаталогВременныхФайлов()+"1CDLib.dll";
Файл=Новый Файл(СсылкаКомп);
Если Не Файл.Существует() Тогда
МакетКомп.Записать(СсылкаКомп);
КонецЕсли;
Иначе конфликт между захваченным 1С файлом ВК и попыткой его записать про повторном открытии обработки в том же сеансе:
{Форма.Форма.Форма(164)}: Ошибка при вызове метода контекста (Записать)
МакетКомп.Записать(СсылкаКомп);
по причине:
Ошибка совместного доступа к файлу 'C:\Documents and Set.....
МакетКомп=ПолучитьМакетКомпоненты();
СсылкаКомп=КаталогВременныхФайлов()+"1CDLib.dll";
Попытка
МакетКомп.Записать(СсылкаКомп);
Исключение
КонецПопытки;
КомпУст=Ложь;
Попытка
КомпУст=ПодключитьВнешнююКомпоненту(СсылкаКомп,"T1CDLib",AddInType.Native);
Исключение
Сообщить("Произошла ошибка при подключении компоненты!");
КонецПопытки;
Показатьчтобы не было проблем с обновлением версии самого файла компоненты в будущем
IMHO, лучше так:
Проверяем наличие КаталогВременныхФайлов()+"1CDLib.dll";, удаляем его без сомнений, и уж потом
КомпУст=ПодключитьВнешнююКомпоненту(СсылкаКомп,"T1CDLib",AddInType.Native);
Есть интересная API MoveFileEx(PAnsiChar(FileName),PAnsiChar(NewFileName), MOVEFILE_REPLACE_EXISTING)- позволяет переименовать залоченный файл.
СсылкаКомп=КаталогВременныхФайлов()+"1CDLib.dll";
СсылкаКомпН=КаталогВременныхФайлов()+"_1CDLib.dll";
// -> метод Miracle--
Файлы.ПереименоватьФайл(СсылкаКомп,СсылкаКомпН);
// <- метод Miracle--
МакетКомп.Записать(СсылкаКомп);
ПоказатьРаз 15 перезапустил в таким кодом - все, как в аптеке ;)
P.S. "В самой себе", естественно, не поможет - оно ж не загружено еще...
"позволяет переименовать залоченный файл"(с)
Нет.
Можно только открытый с GENERIC_READ и FILE_SHARE_DELETE.
Так открываются DLL, EXE...
Один из способов удалить гадость из системы - переименовать, перезагрузиться, удалить.
База открыта, переименовано обработкой с кодом
&НаКлиенте
Процедура Команда1(Команда)
Файлы.ПереименоватьФайл("d:\СервисМ Работа с клиентами\MiracleNative.dll","d:\СервисМ Работа с клиентами\_MiracleNative.dll");
КонецПроцедуры
Давно бы пора привыкнуть, что я не пишу то, чего не проверил. Переименовать даёт,удалить - нет
Если не въехал, поясняю: MiracleNative.dll - залоченный базой файл ВК, вызывается метод самой же ВК, им же и переименовывается, в процессе работы базы (ВК).
Умный. :-)
Я опроверг твое слово "залоченный".
Т.е. возможность переименовать определяется способом открытия, а не блокировкой.
Читай внимательнее. Я не опровергаю возможности переименовать. Специально привел пример про удаление "гадости" из системы... ;-)
Эх. Мало ты разрабатывал программ-гадостей. :-)
Я всегда блокирую DLL и EXE, чтобы ты не мог их переименовать. :-)
P.S.
Файл залочен - да.
НЕТ !!!
P.P.S.
Всё.
Давай не будем грузить тему.
Разобрались в "терминах"... ;-)
И почему, собственно, тему не грузить? Тут что, юзверьки на "поздравлялку" собрались? Тут ВК, и проггеры должны быть разрядом чуть повыше, чем "одноэснеги"
да, с удалением засада. провёл эксперимент: при запущенном сеансе, удерживающем dll, снимаю блокировку Unlocker'ом, удаляю файл, запускаю повторно обработку - 1сина валится.
видимо, повторная загрузка компоненты не выполняется в любом случае, даже если дескриптор загруженной ранее уже "протух"
Аркадий и andrewks.
Вот, чего не понимаю. ;-)
Извините, расскажу на примере "семерки".
Запускаю сессию 1С-а (локально). Запускаю Unlocker. Делаю выбор каталога BIN. Вижу только "залоченные" файлы. Среди этих файлов только ВК. Но не все, что я загрузил в конфигурации. Половина. ;-) Никаких других файлов в списке нетУ. Естественно, переименовать "залоченные" файлы не удается. Все/любые остальные - легко.
Дык, чего не могу понять. Почему в списке именно эти файлы? Загружаю все ВК одинаковыми операторами. Лежат они только в каталоге BIN.
Чего/как/где можно подумать/почитать/посмотреть для осознания эТТого явления? ;-)
на след.день с этой же обработкой с открытым сеансом компилятор уже не мог записать длл-ку - выдавал ошибку.
вот как это можно объяснить?
по крайней мере, в СП описано два способа размещения:
Строка, определяющая местоположение внешней компоненты.
В качестве строки может использоваться:
полное имя макета, в котором хранится внешняя компонента в архиве;
URL к внешней компоненте, упакованной в ZIP-архив, в формате, аналогичном ПолучитьНавигационнуюСсылку().
но заставить работать второй способ лично у меня пока не получилось
Замечу снова, что если ошибку провести через отладчик (см. выше), то компонента таки оказывается подключенной и работает. И перезапускать при этом внешнюю обработку можно сколь угодно раз - пока не перезапущена платформа, ошибка не проявляется.
На XP, кстати, проверил. Работает без ошибок. Похоже проблема возникает именно при инициализации dll и лолко под Win7/Server2008R2 (за висту и server2008 не подпишусь - не пробовал)
ну, у r0610201 тоже сначала были глюки при загрузке, а потом заработало нормально, вот я и подумал.
а запуск сеансов 1с на Win7/Server2008R2 делаете под учётками с админскими правами винды, или под юзерскими?
Под админскими, но без выключения UAC. Это, кстати, мысль. Сейчас попробую с выключением UAC стартануть...
в журнале вот такая ошибка, не знаю, чем это может помочь:
Имя сбойного приложения: 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
несмотря на то, что в СП сказано
Для режимов запуска "Тонкий клиент" и "Веб-клиент", компонента должна быть предварительно установлена методом УстановитьВнешнююКомпоненту.
&НаКлиенте
Процедура ПриЗакрытии()
СсылкаКомпН=КаталогВременныхФайлов()+"_1CDLib.dll";
Файлы.ПереименоватьФайл(СсылкаКомп,СсылкаКомпН); // тут метод своей же ВК поставить
КонецПроцедуры
а если 1сина упала во время выполнения, файл-то останется. и всё равно придётся это предусмотреть, и опять выходим к попытке перезаписи. а при наличии оной переименовывать при закрытии уже становится необязательно
{Форма.Форма1.Форма(125)}: Значение не является значением объектного типа (SaveTableDataToFile)
FileDB.SaveTableDataToFile(TableName,FileNameDescription,FileNameRecords,FileNameBLOB,FileNameIndexes);
интересует содержимое этого лог-файла на момент сразу после краха, на момент после продолжения работы через отладчик, и на момент после закрытия сеанса 1С, в котором осуществлялась загрузка длл-ки
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
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
но вот причины падения так и остаются непонятными.
спасибо за содействие. если что придумаю, отпишусь
Повторю декрипшн ошибки, возвращаемый отладчиком:
========================================
Необработанное исключение в "0x776fe6c3" в "1cv8.exe": 0xC0000374: Куча была повреждена.
========================================
Погугли про 0xC0000374 "heap corruption". Там забавно.
вот мне подумалось тут, а может мы ищем чёрную кошку в тёмной комнате в то время, когда её там нет?
конкретно: может, дело не в компоненте (или не только в компоненте).
какие есть мысли:
1. попробовать на релизах 1С, отличных от 8.2.16 (на 8.2.15, 8.2.17)
2. попробовать на Win2008 x64 без установленного отладчика (кто знает, может, это он накладывает такой отпечаток?)
3. попробовать запустить при отключенном DEP
также прошу других участников, имеющих доступ к Win7 x64 и Win2008R2 x64, проверить комплект из (91), статистика не повредит, ибо как минимум двое участников в этой ветке уже высказывались, что у них на обозначенных системах компонента загружается без сбоев
Имя сбойного приложения: 1CV8C.exe, версия: 8.2.15.310, отметка времени: 0x4f838bea
Имя сбойного модуля: 1CDLib.dll, версия: 1.0.2.0, отметка времени 0x00000000
Код исключения: 0xc0000005
Смещение ошибки: 0x0001aff6
Путь сбойного модуля: C:\test\1CDLib.dll
у Вас либо нет папки C:\TEMP, либо у текущего пользователя нет прав на запись в эту папку
:-) это тестовая сборка длл-ки, без функционала, только загрузка. была создана для отслеживания падений при загрузке, см. (84)
рабочая версия - в публикации
нда... время, а еще - деньги...
Говорят когда Бог создал время, то его было достаточно.
Насчет денег при этом умалчивается.
Надо полагать, что люди создали из божественного времени деньги
и поэтому его стало катастрофически не хватать.
:)
PS:
Вставил ссылочку на твою статью в свою публикацию.
Единственное, так пока и не удалось запустить компоненту на сервере. На клиенте - без проблем, на сервере ПодключитьВнешнююКомпоненту возвращает всегда Ложь. И по пути пробовал, и в общий макет засовывал, и в общий макет с манифестом - результат одинаков.
соответственно, работает только в среде 1С 8.2 и выше
однако сами обрабатываемые базы могут быть 8.0, 8.1, 8.2, 8.3
х64 сборка компоненты тоже возможна, но не могу сказать, когда у меня доберутся до этого руки.
сейчас следующая главная цель - "научить" компоненту изменять/добавлять/удалять записи таблиц
Имя сбойного приложения: 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
пока вариант такой: если добавили записи, или изменили индексируемые поля, то перестроить индексы можно при помощи chdbfl.exe с взведённой галкой "исправлять ошибки"
специально указывать это пока не стал из следующих соображений: пометил, что вообще весь функционал по изменению/добавлению записей находится в стадии "бета", т.е., грубо говоря, пока собираю косяки
поле объекта не обнаружено _recordlsdeleted
другие шаги делать не дает
с чем это связано?
то есть в чистую конфигурацию можно загрузить таблицы из битой базы и по идеи должно работать?
в каталог скопированы только файлы, но при загрузке он взял имя из битой базы _ACCRG467, как сделать так чтоб он загрузил данные с именем новой базы
Вам нужно закачать данные объектов записей, блоб, и индексов, а описание оставить (при условии, что структура и порядок полей идентичны)
В принципе моя база потихоньку восстанавливается и приобретает нормальный вид
Если вкратце, то пошел по пути переноса данных в чистую базу, смотрю какие таблицы заполнены в битой базе, определяю их соответствие в новой базе и загружаю
Учитывая, что шаги нужно выполнять последовательно, то нужно делать недоступным вторую и далее кнопки слева от "Прочитать", пока не будет нажата "Прочитать". Аналогично, Удалить и Восстановить, если не нажата была "Извлечь" ...
А все остальное - практично и продумано.
У меня тут сложилась ситуация - есть как бы технический специалист, хочет поработать низкоуровнево с данными. Но блин не 1С-ник он. Ему бы С# сборку чтобы к проекту присоединить.
Судя по всему компонента написана на Lazarus/FreePascal (учитывая другие публикации), хотя могу и ошибаться. Но в любом случае компонента была бы нужна наверное больше не программистам 1С.
В любом случае - компонента отличная, меня только не спасет.
компонента позиционируется для восстановления разрушенных файловых баз, поэтому предназначается именно программистам и администраторам 1с
главное, чтоб 1с пореже меняли формат БД,
любые компоненты, которые позволяют работать с таблицами БД с закрытым форматом
несомненно полезны, до сих пор с содроганием вспоминаю,
как раньше приходилось выкручиваться в таких ситуациях - например, в крайнем случае высылать самой 1с для ремонта файловой базы за деньги...
(140) lustin,
установите 1с на Sql-сервер, и оттуда получайте все данные, которые нужны,
такое позиционирование автором компоненты кажется вполне правильным
а разве 1с не должна бесплатно ремонтировать, при наличии ИТС? хотя, по отзывам, люди ждут неделями, и с непредсказуемым результатом.
я же при помощи данной компоненты и вспомогательных обработок (представленных в других публикациях) могу отремонтировать базу за 2-3 часа при не очень сложном случае, за 4 или более часов - в сложных случаях. (естественно, бывают ещё и безнадёжные случаи, но приведу мини-статистику: из примерно 10 реанимированных мной баз 9 были восстановлены полностью, одна - частично (пару справочников пришлось откатывать версиями из старого архива), естественно, тут многое зависит от того, есть ли старые архивы, типовая ли была конфа, и т.п.)
(149) посмотрел, да конечно, совсем о другом речь,
Redmine (SVN) + 1с интересная тема,
но разве там нужна выгрузка базы, а не выгрузка конфигурации?
и еще не очень понял зачем для этого обязательно нужен платный снегопат..
Моя задача не связана с базами данных файлового формата 1CD. Моя задача связана с хранилищем 1С, которое имеет тот же формат.
И мне не надо его чинить ;-). Мне его надо читать, причем постоянно.
Зачем - более подробно тут
(153) expert.1c8, выгрузка конфигурации это работает в том числе и у меня - но это не наш метод ;-). Нам нужно читать из хранилища напрямую - а оно и есть база. Хранилище - это база файлового формата 1С, только там таблицы немного другие. Возьмите Tool_1CD и откройте файл в папке хранилища - там есть вся информация: модули, версии и т.д.
загрузил проводки, оборотками и анализами они выводятся
загрузил контрагентов и договора, все открывается
но вот задача, при выводе обороток для аналитики пишет объект не найден, то есть например для счета 58.03 он не видит контрагента и договор (интересует только он)
2) Думал, что удаление не сработало, но надо было просто запустить chdfl с галкой исправлять, сразу после этого размер БД изменился
3) Указанную выше обработку использовал, чтобы посмотреть по именам, какие таблицы надо удалить,
если это сюда добавить (хоть обработка и позиционируется просто как пример работы) то гораздо проще было бы выбирать таблицы
4) Если после удаления база работает, проблем не возникает, то в дальнейшем может вылезти какая-то ошибка? или это означает, что все прошло удачно?
бесспорно. но время - такая штука, что его постоянно не хватает ;-)
да, про это прямо сказано в публикации (там написано про добавление и изменение, надо будет ещё добавить, что при удалении индексируемых записей, естественно, такая же петрушка)
если это сюда добавить (хоть обработка и позиционируется просто как пример работы) то гораздо проще было бы выбирать таблицы
в принципе, код той обработки открытый, можно и сюда перекопировать. если дойдут руки когда-нибудь - обновлю.
с 1с нельзя быть уверенным на 100%, даже если и не пользовался этой компонентой для прямого доступа ;-)
Почему то не сохраняются данные после закрытия файла
Запись делаю следующим образом.
res = FileDB1.WriteSimpleValue(0,"FILENAME",FILENAME);
res = FileDB1.WriteSimpleValue(0,"CREATION",CREATION);
Результат выдает положительный и вижу что данные попали в запись, но после закрытия таблицы ничего не остается :(
подождите, что-то я не понял, как это - восстановили 2 из 2, но одна из них не работает?
тогда получается, что восстановили 1 из 2.
или спецы восстанавливали не БД, а сам винт?
на самом деле, практически невозможно дать совет в случае ошибки "Ошибка формата потока", не зная, в какой таблице она возникает.
есть возможность прислать архив сбойной БД в личку?
Также непонятно, чем различаются по использованию методы OpenBinFile и Open1CDFile.
очевидно из названий - первая функция открывает бинарный файл с блочной структурой, это необязательно должен быть файл 1CD, методы работы с бинарными файлами даны в описании "Методы для работы с произвольными двоичными блочными файлами"
это функции, возвращающие информацию из двух внутренних файлов 1С, содержащих перечисления метаданных. это файлы DBNames и ещё один файл с UID-именем.
оттуда, например, берутся синонимы имён метаданных
Вот, например, раздел "Методы для работы с файлами БД 1С".
Среди перечисленных в нем методов нет методов типа ReadBlockToBuffer, но методы работают.
Неочевидно, что методы для работы с произвольными двоичными блочными файлами будут также
работать для файлов, открытых по Open1CDFile. Является ли Open1CDFile расширением для
OpenBinFile или у них просто есть несколько одинаково названных методов?
FileDB.OpenMetadata();
по причине:
Ошибка внешней компоненты
В сообщении же выдает:
OpenTable() : Table with name PARAMS is not found!.
Файл. Можно взять любой файл хранилища конфигурации. Что бы его создать надо открыть 1С в конфигураторе. Меню Хранилище конфигурации - Создать хранилище, указываем путь, ну и собственно в том катале и будет файл "1cv8ddb.1CD". Это он и есть.
{Форма.Форма.Форма(441)}: Ошибка при вызове метода контекста (ОткрытьФайлБД)
FileDB.Open1CDFile(ИмяФайла);
по причине:
Ошибка внешней компонентыFileDB.Open1CDFile(ИмяФайла)
в файле логов ошибки:
OpenLogFile() [2016-12-05 09:19:59.879 Info] 1CDLib.dll version: 1.3.0.0
OpenBinFile() [2016-12-05 09:19:59.981 Info] File opening: H:\база\1Cv8.1CD
OpenBinFile() [2016-12-05 09:19:59.981 Info] File size: 3000467456
OpenBinFile() [2016-12-05 09:19:59.981 Info] Blocks count: 732536
ReadMainStream() [2016-12-05 09:19:59.981 Info] Blocks count in Main Stream header doesn't correspond to file size, blocks count: 366268, blocks size: 1500233728, file size: 3000467456
ReadFreeBlocksTable() [2016-12-05 09:19:59.981 Info] Free Blocks Table header is not present or corrupted!
ReadRootEntry() [2016-12-05 09:19:59.981 Info] Root Entry header is not present or corrupted!
Как исправить?
Пишет, что не поддерживается.
Подскажите пожалуйста, компонента будет работать с платформой 1С:Предприятие 8.3 (8.3.11.2831) ?
или с базой на этом формате ?
У меня разрушилась база 8.3.11.2954
Утилита ее открыть не может.
Пробую сконвертировать в 8.2
Пробую открыть движком 8.2.19.80
Получаю сообщение "Ошибка при операции с информационной базой.
Несовместимая версия файла базы данных <КаталогИБ>1Cv8.CD
Запускаю обработку на платформе 8.2.17.153
При попытке прочитать файл 1CD вылетает программа.
Подскажите что делаю не так. Получается что она не может к компоненте обратиться. На сервере стоит 64 разрядная виндовс, я взяла файл dll из папки compiled\x86_64-win64\ и поменстила в каталог bin требуемым релизом платформы.
Имя события проблемы: APPCRASH
Имя приложения: 1cv8.exe
Версия приложения: 8.2.17.153
Отметка времени приложения: 50cbdf3b
Имя модуля с ошибкой: 1CDLib.dll
Версия модуля с ошибкой: 1.3.0.0
Отметка времени модуля с ошибкой: 00000000
Код исключения: c0000005
Смещение исключения: 0002937d
Версия ОС: 6.1.7601.2.1.0.16.7
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
Видать я не совсем точно объяснила. Я на платформе 8.2.17 (я пробовала и под 18 и даже под 19 платформой) запускаю совершенно чистую базу. Затем запускаю обработку из вашего архива (ExtractObjects). В обработке есть кнопка Шаг1.Прочитать. ВОт когда я нажимаю на эту кнопку Вываливается ошибка. (вот я то же самое сейчас проделала на 19 платформе). Не пойму что делаю не так.
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: 1cv8.exe
Версия приложения: 8.2.19.83
Отметка времени приложения: 52aea6ce
Имя модуля с ошибкой: 1CDLib.dll
Версия модуля с ошибкой: 1.3.0.0
Отметка времени модуля с ошибкой: 00000000
Код исключения: c0000005
Смещение исключения: 0002937d
Версия ОС: 6.1.7601.2.1.0.16.7
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
Ознакомьтесь с заявлением о конфиденциальности в Интернете:
Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\Windows\system32\ru-RU\erofflps.txt
В частности, интересуют FixMainStreamHeader() и PrintRootEntry(). Утилита сохранения таблиц выдает в логе вот такое сообщение "Root Entry header is not present or corrupted!"
Нужно несколько записей удалить
Есть решение?
Ошибка внешней компоненты
{ВнешняяОбработка.ИзвлечениеОбъектов.Форма.Форма.Форма(503)}:FileDB.Open1CDFile(ИмяФайла);
по причине:
Ошибка внешней компоненты
Рейтинг: 1383
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 166557
Создание 18.12.12 09:18
Обновление 06.06.20 21:20
Просмотры 126611
Загрузки 2689
Рейтинг
310
Комментарии 238
Код открыт Нет
Рубрики Разработка внешних компонент
Кому
Системный администратор
,
Разработчик
Тип файла Компонента, плагин (dll, vbs,..)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)