Чтение метаданных 1С из SQL Server и PostgreSQL

Публикация № 1385677 16.02.21

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

DBNames Config Params SQL метаданные C#

Описание файла DBNames таблицы Params и файлов объектов метаданных таблицы Config.

Исходный код C# на GitHub: dajet-metadata

Код используется проектом DaJet Studio

Проверялось на версиях платформы 1С:Предприятие от 8.3.10 до 8.3.20.

 
Описание файла DBNames таблицы Params.
 
Описание файла объекта метаданных таблицы Config.
 
Пример кода C# для чтения файла метаданных 1С. 
 
Утилита для быстрого чтения свойств конфигурации

Алгоритм чтения метаданных (см. исходный код на GitHub):

1. Читаем файл DBNames из таблицы Params.

2. Используя файл DBNames, читаем файлы объектов метаданных из таблицы Config.

3. Дополняем объекты метаданных недостающими стандартными реквизитами (их нет в файлах объектов метаданных). Это можно сделать, например, выполняя чтение полей таблиц SQL Server (INFORMATION_SCHEMA.COLUMNS). Эти поля имеют стандартные и достаточно понятные имена. Как они называются в 1С мы тоже знаем. Например, "_Description" это "Наименование" справочника.

 
Обновление от 16.09.2022
 
Обновление от 10.07.2022
 
Обновление от 26.01.2022 Новая версия проекта DaJet.Metadata
 
Обновление от 12.07.2021
 
Обновление от 08.07.2021 : Алгоритм загрузки конфигурации.
 
Обновление от 22.03.2021

Добавлено описание методики исследования файлов объектов метаданных на GitHub.

 
Обновление от 09.03.2021 

Добавлена поддержка PostgreSQL.

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Cyberhawk 130 16.02.21 09:56 Сейчас в теме
Испанский стыд за фирму 1С от того, что сообщество этим ковырянием занимается, а не сам вендор (в своей документации)...
torbeev; DiGri; portwein; webandroid; zakiap; Hatson; chg; YPermitin; Yashazz; DennyPhilord; artbear; zhichkin; +12 Ответить
18. YanTsys 12 17.02.21 18:06 Сейчас в теме
(1) Вообще-то это ковыряние незаконная деятельность... :)
Painted; powerpc; +2 Ответить
19. zhichkin 1259 17.02.21 18:17 Сейчас в теме
(18) Всё законно.
ГК РФ, часть 4, статья 1280 "Право пользователя программы для ЭВМ и базы данных"
Мы тут исследованиями занимаемся. А Вы что подумали ?
20. YanTsys 12 18.02.21 10:33 Сейчас в теме
(19)
ГК РФ, часть 4, статья 1280 "Право пользователя программы для ЭВМ и базы данных"


Статья 1280 п1 пп1 "если иное не предусмотрено договором с правообладателем"
lunjio; Serj1C; +2 Ответить
21. zhichkin 1259 18.02.21 12:12 Сейчас в теме
(20) Спасибо за предупреждение.
22. YanTsys 12 18.02.21 13:14 Сейчас в теме
(21) И вам спасибо за полезную публикацию, очень интересно как 1с на самом деле устроена. :)
2. Cерый 23 16.02.21 13:57 Сейчас в теме
Благодарю Вас, считаю эту информацию ценной.
Обращаю Ваше внимание: можно из 1С выполнять внешние запросы и т.о. продублировать Ваш код на 1С,
предполагаю, востребованность этого языкового варианта выше.
3. zhichkin 1259 16.02.21 14:01 Сейчас в теме
(2) Спасибо за отзыв.
На 1С лучше использовать функцию ПолучитьСтруктуруХраненияБазыДанных и внешнее соединение для внешних баз.
5. Yashazz 4339 16.02.21 14:44 Сейчас в теме
(3) Она тоже не всё и не полно даёт. Можно ещё внешние источники прикручивать на это дело.
zhichkin; +1 Ответить
7. user612295_death4321 16.02.21 20:42 Сейчас в теме
(3) Согласен с предыдущим комментарием. Готов накинуть стартмани, если обернете во внешнюю компоненту 1С, которая позволит читать метаданные из внешней базы :)
8. zhichkin 1259 16.02.21 21:26 Сейчас в теме
(7) Native API компоненту не осилю - не умею C++. Во всяком случае у меня под Visual Studio 2019 шаблон проекта от 1С не взлетел. Под Windows на C# могу запилить, но не считаю это удачной идеей. Объясню почему.
Загрузка полной конфигурации, например, БП или УТ это примерно +300 Мб в памяти. На мой взгляд это много, особенно если нужно загрузить пару-тройку конфигураций одновременно.
В связи с этим считаю более перспективным использование web-сервиса, который бы загружал нужные конфигурации и размещал у себя в кэше. Делать это можно по команде или из файла настроек при старте службы (так, в частности, работает DaJet Studio). Периодчиески кэш можно обновлять, проверяя не изменилась ли целевая конфигурация.
Другое возможное решение это загружать метаданные 1С в базу данных со специльной структурой для удобного чтения при помощи запросов SQL. Это решение можно комбинировать с web-сервисом. Более того при таком варианте решения возможно также реализовать стратегию lazy load (ленивая загрузка) когда в память подгружаются только запрашиваемые данные. Данный вариант решения был использован в моём старом проекте 1C#, который является предшественником DaJet Studio.
Я готов в принципе реализовать какой-то из выше описанных вариантов (не COM-компоненту). Пожалуй это может стать моей следующей публикацией =)
mefalcon; +1 Ответить
9. user612295_death4321 16.02.21 21:55 Сейчас в теме
(8)
zy load (ленивая загрузка) когда в память подгружаются только запрашиваемые данные. Данный вариант решения был использован в моём старом проекте 1C#, который является предшественником DaJet Studio.
Я готов в принципе реализовать какой-то из выше описанных вариантов (не COM-компоненту). Пожалуй это может стать моей следующей публикацией =)


Сейчас пока выбрал подход, что у меня куча информационных баз стучится в веб сервис и отдает нужные мне данные), но не очень нравится вариант с тем, что приходится дорабатывать конфигурацию там, где нет механизма запуска внешних обработок по регламенту, чтоб потом у меня собралась моя некая инфраструктурная карта на HTML )) Было бы прекрасно уйти от доработок конфигураций, возможно конечно подумаю в сторону COM

25. user612295_death4321 18.02.21 19:52 Сейчас в теме
(8) Кстати, может быть хотя бы консольную утилиту соберете и выложите за условные 1 SM ?)
26. zhichkin 1259 21.02.21 17:07 Сейчас в теме
(25) Сделаю. Вопрос: что будет результатом работы утилиты ?
Прошу писать в личку или в канал Телеграмм https://t.me/dajet_studio
27. user612295_death4321 21.02.21 17:52 Сейчас в теме
(26) Указанный Вами канал является только для чтения. Описал предложение в https://t.me/dajet_studio_group , это же тоже Ваш канал ?
32. zhichkin 1259 22.02.21 23:50 Сейчас в теме
4. DennyPhilord 65 16.02.21 14:21 Сейчас в теме
В какой момент возникает - Ошибка при выполнении файловой операции 'v8srvr://.../Params/DBNames' ?
6. zhichkin 1259 16.02.21 15:11 Сейчас в теме
(4) Не знаю. Честно говоря, ни разу не видел такой.
10. triviumfan 30 17.02.21 00:26 Сейчас в теме
Ужасное оформление. Невозможно читать - глаза сломаешь.
11. serega_sw 17.02.21 08:27 Сейчас в теме
Подобное хорошо, когда клиента снимаешь с иглы использования 1С платформы в организации. Пока создается своё ПО для работы, все параллельно работают в 1С какие-то отделы переводишь на своё ПО. Приходит момент и избавляешься от 1С.
14. RocKeR_13 1075 17.02.21 12:33 Сейчас в теме
(11) а потом уходят авторы "своего ПО", приходит, например, маркировка и вкладываются миллионы на возврат к 1С, пока свой штат не допилит новый функционал))
ubnkfl; SiAl; SirStefan; lan21; LelikOFF; firma_unix; randomus; +7 Ответить
15. zhichkin 1259 17.02.21 12:57 Сейчас в теме
(14) Ситуация, подобная той, которую Вы описываете, похожа на обыкновенную истерику =)

Внедрение любой маркировки анонсируется минимум за год. Я внедрял типовую библиотеку интеграции МДЛП от 1С. Что там под капотом знаю очень хорошо. Там нет ничего, чего нельзя в разумные сроки написать на любом другом языке программирования.
Например, основные процессы МДЛП (приёмка, реализация, получение списков входящих и исходящих документов) я сделал на C# в свободное время по вечерам где-то за месяц. Согласен - прототип и всё такое. Но ясно одно: "Разруха не в клозетах, а в головах людей" (с)
16. zhichkin 1259 17.02.21 13:00 Сейчас в теме
(14) Когда дорабатывают 1С конфигурацию "под себя" тоже пишут "своё ПО", между прочим.
12. John_d 4174 17.02.21 09:09 Сейчас в теме
Как-то делал Кастомизированная обработка Структура хранения
https://infostart.ru/public/968058/
13. setrak 147 17.02.21 11:16 Сейчас в теме
Интересная статья. Было бы хорошо, если в коде на GitHub было побольше комментариев)
Для прямых запросов к скулю очень полезная информация. Одна московская компания в своих разработках создает таблицу соответствия на скуле, куда можно налету обращаться и динамически формировать запросы. Но у них код закрытый.
Очень удобно и быстро работает, когда расшифрованная структура хранится в таблице, но есть важный момент, при восстановлении базы с .dt, редактировании метаданных (добавление/удаление полей и таблиц), эту таблицу соответствия нужно переформировывать.
По сути если реализовать инструмент (регламент), который будет проверять изменение конфигурации и формировать таблицу соответствия, то это было бы идеально.
17. zhichkin 1259 17.02.21 13:20 Сейчас в теме
(13) Согласен: код на GitHub не "причёсан". В процессе ... =)
Хочу ещё оптимизировать производительность и подумаю на тему кэширования.
Сейчас, на холодный кэш SQL Server, конфа БП или УТ без метаданных SQL Server грузится где-то за 7 секунд.
На горячий кэш - 1 секунду.
23. lan21 18.02.21 15:41 Сейчас в теме
А почему не с DBSchema начали?
24. zhichkin 1259 18.02.21 17:41 Сейчас в теме
(23) Честно говоря, я сейчас не вспомню причину отказа от DBSchema. Чего-то мне там не хватило. Надо взглянуть на него ещё раз =)
28. nvv1970 22.02.21 08:10 Сейчас в теме
В случае выгрузки и загрузки конфигурации при помощи файла дт значения этих идентификаторов могут быть пересчитаны и изменены.

Нет, не может. С чего бы это? Можете привести пример?
Загрузка дт вообще никаких данных не изменяет. Тупая заливка как есть, со всеми ошибками в данных и метаданных.
29. zhichkin 1259 22.02.21 13:22 Сейчас в теме
(28) Речь была только про целочисленные идентификаторы в файле DBNames таблицы Params:
{f47b419b-4aed-4975-83d8-978c710710d1,"Reference",39}
В данном случае это число 39 в конце строки.
30. nvv1970 22.02.21 21:31 Сейчас в теме
(29) это разве не номера таблиц в имени? Не встречал ни одного примера, чтобы имена таблиц менялись.
31. zhichkin 1259 22.02.21 23:47 Сейчас в теме
(30).Так бывает. Конкретную методику воспроизведения не подскажу. Если удалять объекты метаданных, создавать заново, сохранять конфигурацию и перезагружать через dt, то в какой-то момент это может произойти. Если не имена таблиц, то полей. Я уже натыкался на это раньше. По этому бэкапы только средствами SQL Server делаю, тем более что это рекомендация самой 1С.
33. nvv1970 23.02.21 08:39 Сейчас в теме
(31) в ДТ сохраняется все, кроме индексов. При загрузке выполняется просто балкинсерт данных как есть. Не проверяются связи таблиц, метаданные, имена и прочие метаперестроения, которые выполняет реструктуризация.
Вы сейчас на ходу придумываете что-то. А удаление/добавление таблиц с ДТ не имеет отношения. Это из другой оперы.
ПС: конечно дт - это не бэкап. В бэкапе то же состояние статистики, фрагментации таблиц, расположение страниц в файлах.
34. zhichkin 1259 23.02.21 13:38 Сейчас в теме
(33) Не возражаю. Спасибо за замечание.
35. YA_24763472 25.05.21 22:00 Сейчас в теме
А что по скорости получается, если взять конфигурацию, на 3000 объектов и закешировать все, с реквизитами, табличными частями и прочим в 3000 json файлов? В таком примерно виде:
{
"id" : "7aadbb67-f93e-43bb-9f53-f14d2c2a347a",
"name" : "Валюты",
"title" : "Валюты",
"type" : "Reference",
"localId" : "61",
"nameTable" : "_reference61",
"attributeList" : {
"ФормулаРасчетаКурса" : {
"id" : "5a088468-4065-4e0c-9b84-1162de8d3fdd",
"localId" : "20646",
"type" : "S",
"title" : "Формула расчета курса",
"nameField" : "_fld20646"
},
"СпособУстановкиКурса" : {
"id" : "dbdf3ae7-a0af-44b9-8e3d-c402d98cda03",
"localId" : "20647",
"type" : "#",
"title" : "Способ установки курса",
"nameField" : "_fld20647rref"
}
}
}
36. zhichkin 1259 26.05.21 02:17 Сейчас в теме
(35) Общий ответ будет таким: на скорости близкой к скорости копирования файлов с жёсткого диска в память программы. Думаю вполне можно уложиться в 1 секунду.
37. YA_24763472 26.05.21 11:06 Сейчас в теме
(36) 1 секунду, это очень быстро! Не плохо да! Спасибо, очень помог твой пост! У меня выходит на 3000 объектов примерно 50 секунд, то есть создаю 3000 файлов json, но да 45 сек из них на чтение исходных данных из БД, сколько еще на запись и распаковку Deflate не проверял. А еще может подскажешь, смог найти где в исходной структуре информация по таблицам "Изменения" и "Предопределенные"?
38. zhichkin 1259 26.05.21 12:09 Сейчас в теме
(37) Предопределённые "сидят" в основной таблице объекта - у них поле _PredefinedID не равно нулевому GUID'у.
Таблицы изменений имеют постфикс ChngR, например _ReferenceChngR80. Подробнее про таблицы изменений можно почитать в моей статье про планы обмена.
В своей утилите я кажется не добавлял загрузку метаданных по таблицам изменений - такой необходимости не было.
Информация об этих таблицах есть в файле DBNames таблицы Params СУБД.
39. YA_24763472 26.05.21 15:07 Сейчас в теме
С предопределенными, понял, спасибо! Изменения получается отдельно описаны, то есть в Params находим ChrcChngR и по ее ИД ищем файл в Config, где уже узнаем для какого он Reference? Думал как со табличными частями, находим в Params нужный Reference, парсим получаем ИД и тогда уже в Params ищем таблицу и получаем ее числовой код. За статью про планы обмена отдельное спасибо, все очень подробно расписано.
40. zhichkin 1259 26.05.21 15:18 Сейчас в теме
(39) В таблице Params ищем файл DBNames, в файле DBNames есть идентификатор для основной таблицы, например, Reference123. Этот идентификатор (uuid) будет таким же в этом же файле DBNames для соответствующей таблицы изменений ChngR справочника Reference123. Числовой идентификатор типа integer у них будет разным. Отдельного файла для описания таблиц изменений в конфигурации нет. Возможно оно есть в таблице DBSchema, но по факту это не нужно, так как алгоритм формирования таблиц изменений известен. Он описан в официальной докуменации 1С. Коротко: обязательные поля таблицы изменений + поля кластерного индекса основной таблицы объекта метаданных.

Примерно вот так это будет выглядеть в файле DBNames таблицы Params:
{cf336ad9-35bb-4f54-8979-05e900d44956,"Reference",36}
{cf336ad9-35bb-4f54-8979-05e900d44956,"ReferenceChngR",1356}
41. YA_24763472 26.05.21 21:43 Сейчас в теме
(40) Понял, спасибо! Могли бы и более понятную структуру сделать для хранения метаданных, в том плане, что так запутано, должно на быстродействие влиять.
42. YA_24763472 28.05.21 11:23 Сейчас в теме
(40) Видел, писал про расширения для 1С, не вышло собрать на С++. Коллеги говорят, можно на C# расширения писать, точно можно, но сам не пробовал, на Java пишу. Думаю ради этого посмотреть C# они сильно так то похожи.
57. zhichkin 1259 27.06.21 12:28 Сейчас в теме
(42) C# и Java похожи, но не настлоько, чтобы за месяц полноценно "пересесть" с одного языка на другой в смысле разработки. Я думаю месяца три надо не меньше. 1С основана на технологии COM. Java с COM по нормальному дружит только через коммерческие решения. Всё равно не вижу смысла писать внешние компоненты для 1С - всё или почти всё можно решить по http. На мой взгляд 1С это больше UI фреймворк, чем что-то ещё.
43. YA_24763472 26.06.21 05:14 Сейчас в теме
Добавлю, может пригодится, запись params, filename=fe8acd6a-22c9-4b5a-aeae-232a1c8324cb.si содержит описания ОпределяемыйТип и перечисления ссылок для общих типов данных (ЛюбаяСсылка, СсылкаСправочник и т.п.) меняется или нет имя файл от версии платформы, еще не проверял, на 3 конфигурациях проверил, filename то же
44. zhichkin 1259 26.06.21 14:02 Сейчас в теме
(43) Спасибо за комментарий! Интересное наблюдение.
Я тоже исследовал проблему загрузки общих реквизитов и определяемых типов в последней версии DaJet.Metadata.
Посмотрите процедуру ConfigureCommonObjects в файле InfoBaseEnricher.cs, возможно, что найдёте ещё что-нибудь полезное.
45. YA_24763472 26.06.21 15:41 Сейчас в теме
(44) Спасибо! А не подскажешь, откуда это данные функция разбирает, это же не "1a621f0f-5568-4183-bd9f-f6ef670e7090.si" там реквизиты и типы есть но все общим списком. Не смог найти, общие реквизиты отдельно, не в куче.
47. zhichkin 1259 26.06.21 16:48 Сейчас в теме
(45) Сначала использую класс Configurator.
В нём вызываю метод OpenInfoBase.
В этом методе получаю ссылку на класс InfoBaseEnricher и "обогащаю" объект InfoBase данными из файла "root":
GetEnricher<InfoBase>().Enrich(InfoBase);

Файл "root" содержит ссылку на файл с описанием основных объектов дерева метаданных конфигурации 1С.
Каждый общий тип объекта метаданных (типа абстрактный класс) имеет свой uuid. Эти uuid'ы были вычислены опытным путём при помощи добавления одного объекта в пустую конфигурацию и сравнения что изменилось.
Для анализа изменений конфигурации используется сервис MetadataCompareAndMergeService.
Использование этого сервиса можно посмотреть в проекте тестирования, например, файл NewParser.cs. См. вызов CompareWithDatabase - внутри этот метод использует метод Compare сервиса сравнения конфигураций.
46. YA_24763472 26.06.21 15:51 Сейчас в теме
(44) заметил класс ConfigObject свойство List<ob ject> постоянно надо делать явное приведение типов, сначала тоже пошел по такому пути. Потом все таки сделал 2 свойства String и List<Но уже этого же класса> по типу как XML парсер есть текстовая область и список подчиненных и вместо проверки Length == 1 проверка !=null. Приведения типов не надо делать, и в моем случае производительность выше стала. Но, тут однозначно не скажу может на C# не как на Java на такое отреагирует.
48. zhichkin 1259 26.06.21 17:08 Сейчас в теме
(46) Класс ConfigObject реализует структуру файлов конфигурации 1С. Структура файлов 1С это по сути массивы массивов - дерево. В каких-то случаях это коллекции, в каких-то случаях это ассоциативные массивы по типу объектов JavaScript. Суть в том, что, да, при парсинге файла 1С в объект класса ConfigObject можно сразу пытаться привести значение листового элемента дерева к некоторым известным примитивным типам данных. Объекты являются узлами дерева. В частности это могут быть uuid, string, int32 или какой-то объект (уже не листовое значение, а узел дерева). Парсингом файла 1С занимается класс ConfigFileParser. Он очень простой. Можно прямо в нём сделать приведение листовых значений дерева файла 1С к нужным типам. Для этого класс ConfigObject можно расширить дополнительными свойствами вышеуказанных типов: uuid, int32, string. Была такая мысль, но руки не дошли =) И конечно же производительность можно улучшить таким образом и в C# тоже.
Я думал отдельную статью написать про структуру файла 1С с описанием алгоритма парсинга, но опять же руки не дошли.
53. YA_24763472 27.06.21 04:34 Сейчас в теме
(48)
Для этого класс ConfigObject можно расширить дополнительными свойствами вышеуказанных типов: uuid, int32, string
тоже про это думал, мне кажется это более оптимально чем
сразу пытаться привести значение листового элемента дерева к некоторым известным примитивным типам данных
так нам придется конвертировать все значения, которые могут и не пригодится, и получить значение скорее всего один раз надо будет, тогда и конвертировать. Выше писал про другое, у себя отказался от тип "Object" и приведения типов в коде когда строка когда список, для этого сделал два свойства String и List<ConfigObject > и убрал все приведения типов в коде, проверяю какое свойств не null и так понятно это значение или подчиненный список
56. zhichkin 1259 27.06.21 12:21 Сейчас в теме
(53) Спасибо. Теперь дошло. Может быть есть ссылка на Ваш проект ?
49. zhichkin 1259 26.06.21 17:23 Сейчас в теме
(46) Если прочитать файл "root" и записать полученный ConfigObject в файл, то можно получить примерно вот такую структуру:
[0] (0) "2"
[0] (1) DaJet.Metadata.Model.ConfigObject
----[1] (1.0) "977dd4c3-3e84-4487-a75a-2ac42ba3df15"
[0] (2) "7"
[0] (3) DaJet.Metadata.Model.ConfigObject
----[1] (3.0) "9cd510cd-abfc-11d4-9434-004095e12fc7"
----[1] (3.1) DaJet.Metadata.Model.ConfigObject
--------[2] (3.1.0) "1"
--------[2] (3.1.1) DaJet.Metadata.Model.ConfigObject
------------[3] (3.1.1.0) "62"
------------[3] (3.1.1.1) DaJet.Metadata.Model.ConfigObject
----------------[4] (3.1.1.1.0) "0"
----------------[4] (3.1.1.1.1) DaJet.Metadata.Model.ConfigObject
--------------------[5] (3.1.1.1.1.0) "3"
--------------------[5] (3.1.1.1.1.1) DaJet.Metadata.Model.ConfigObject
------------------------[6] (3.1.1.1.1.1.0) "1"
------------------------[6] (3.1.1.1.1.1.1) "0"
------------------------[6] (3.1.1.1.1.1.2) "a2001e99-0af7-44e7-8bfa-6014e7ff6e1f"
--------------------[5] (3.1.1.1.1.2) "УправлениеТорговлей"
--------------------[5] (3.1.1.1.1.3) DaJet.Metadata.Model.ConfigObject
------------------------[6] (3.1.1.1.1.3.0) "1"
------------------------[6] (3.1.1.1.1.3.1) "ru"
------------------------[6] (3.1.1.1.1.3.2) "УправлениеТорговлей"
--------------------[5] (3.1.1.1.1.4) ""
--------------------[5] (3.1.1.1.1.5) "0"
--------------------[5] (3.1.1.1.1.6) "0"
--------------------[5] (3.1.1.1.1.7) "00000000-0000-0000-0000-000000000000"
--------------------[5] (3.1.1.1.1.8) "0"
Показать

Как записать ConfigObject в таком формате можно найти в проекте для тестов.
51. YA_24763472 27.06.21 04:23 Сейчас в теме
(49) Это же файл 1a621f0f-5568-4183-bd9f-f6ef670e7090.si? "root" в моих конфигурациях есть не во вех и в нем, нет таких данных. А если это 1a621f0f-5568-4183-bd9f-f6ef670e7090.si этот файл в нем все типы идут списком, а не деревом, нельзя точно определить, что это Общий реквизит или Определяемый тип или Справочник
54. zhichkin 1259 27.06.21 12:14 Сейчас в теме
(51) Интересно что это за конфигурации, у которых нет файла "root". Можете рассказать ?
58. YA_24763472 28.06.21 08:18 Сейчас в теме
(54) может я не про тот "root" думаю, файл такой есть но он всегда пустой, 212 байт, независимо от размера конфигурации. В нем только одно значение.
50. zhichkin 1259 26.06.21 17:31 Сейчас в теме
(46) Что интересно ещё отметить, структура файлов конфигурации 1С фактически гарантируется тем, что 1С написана на C++. Все структуры ConfigObject имеют какой-то тип в C++. Часто это могут быть структуры и перечисления, иногда классы с определённым порядком следования их свойств. Другими словами структура файлов конфигурации 1С гарантируется исходным кодом 1С =) Вероятность его изменения достаточно низка, это я говорю, исходя из своего опыта разработки больших проектов. Рефакторить системные куски кода, которые влияют на всю систему в целом, вряд ли кто-то будет часто или вообще будет делать в обозримом будущем. Проще платформу переписать наверное будет с нуля =)

Определение некоторых структур и классов C++ можно подсмотреть в проекте Снегопат
52. YA_24763472 27.06.21 04:25 Сейчас в теме
(50) Скорее всего вы правы, но кто их 1С знает. Я все таки настройки путей 1,2,5,0 типа такого вынес в файлы настройки и разбил по версиям платформы (да, версия пока одна) но кто знает поменяет хотя бы один номер, добавят что то, и все перестанет работать. Это мы смотрит как не понятную структуру, а у 1С это же да объекты нормальные, добавят свойств в какой то объект и все порядок сменится
55. zhichkin 1259 27.06.21 12:19 Сейчас в теме
(52) Про настройки это правильная мысль на мой взгляд.
По поводу изменят чего-нибудь - ну вот Снегопат живёт как-то уже много лет.
Каждый раз адаптируется к новой версии платформы 1С.
Да, с этим есть определённые проблемы, но как-то справляются с ними.
59. YA_24763472 28.06.21 08:24 Сейчас в теме
(55) Каждый раз адаптировать понятно, но хочется, что бы сразу работало с любой (хотя бы известно версией платформы), сделал вот такую структуру файлов, где верхняя папка это версия платформы. В файлах структура основных данных, что читаем (JSON намеренно сделал, что бы можно было по возможности редактировать вне системы), это же используется для проверки корректности (совместимости текущей версии файла) и этот же каталог идет как список типов данных (могут в новой платформе добавить какой то новый тип, кроме справочника и т.п.)
Прикрепленные файлы:
60. zhichkin 1259 28.06.21 12:03 Сейчас в теме
(58) В таблице СУБД "Config" есть файл "root". Он выглядит примерно таким образом:
{2,684c8f2b-d93f-49cc-b766-b3cc3896b047,rh3YNJD ... 8YF0=}

В данном примере это массив из двух элементов. Первый элемент этого массива uuid, который и является именем файла с полным описанием дерева конфигурации.
Вот так чтение этих файлов выглядит у меня в коде на C#:
IConfigFileReader fileReader = new ConfigFileReader();
fileReader.UseDatabaseProvider(DatabaseProvider.SQLServer);
fileReader.UseConnectionString("Data Source=MyServer;Initial Catalog=MyDatabase;Integrated Security=True");

ConfigObject root = fileReader.ReadConfigObject("root");
ConfigObject config = fileReader.ReadConfigObject(root.GetString(new int[] { 1 }));
61. YA_24763472 29.06.21 04:22 Сейчас в теме
(60)
684c8f2b-d93f-49cc-b766-b3cc3896b047
да такой видел, файл такой есть, смотрел его, что то мне там не понравилось. На сколько помню там нельзя было однозначно определить, что вот это "Общие реквизиты", а вот это "Определяемые типы", то есть если конфигурация полная есть все типы объектов то это видно, а если конфигурация не использует Общие реквизиты или Определяемые типы, то порядок сдвигается. Или я ошибаюсь?
62. zhichkin 1259 29.06.21 11:50 Сейчас в теме
(61) Нет, порядок там зависит от версии платформы 1С. Например, если запускать на 8.3.15, то "порядок", как Вы говорите и если я правильно понял о чём речь, будет один, а если запустить на 8.3.18, то другой. Причём это абсолютно не зависит от версии совместимости, с которой вы запускаете прикладное решение. Это происходит из-за того, что в версии 8.3.15 в отличии от 8.3.18 не было общего объекта "Боты" или "Сервисы интеграции". Из-за этого "порядок" следования общих объектов в файле, который описывает дерево конфигурации может меняться.
Поэтому лучше искать нужные ветки дерева конфигурации по uuid'ам. Об этом я писал в одном из предыдущих комментариев. Я так и делаю: просто пробегаюсь по всему дереву конфигурации в поиске известных uuid и нахожу списки других uuid, которые являются файлами с описанием конкретных объектов конфигурации.
63. YA_24763472 29.06.21 15:20 Сейчас в теме
(62) Спасибо, посмотрю внимательнее, на первый взгляд показалось порядок меняется даже из за отсутствия объектов. Если только от версии это не страшно. Еще смотри, в статье пишешь, что идентификатор объекта это первый гуид, но если выгрузить конфигурацию штатно в XML, там идентификатор объект совпадает с файлом, а первый гуид получаем это ид "Object" данного типа, далее идут "Ref" и прочие. Мы в одном направлении работаем, может перейдем в мессаджер? Опытом обменяемся, я не так давно этим занялся, но может тоже, что то замечу.
Прикрепленные файлы:
64. Batman1978 10.01.22 10:46 Сейчас в теме
Добрый день. Подскажите, столкнулся с проблемой что нарушились связи между реквизитами и таблицами. Т.е. при запуске 1с пишет что для Регистра не найдена таблица, она есть но нет сопоставления. Подскажите как восстановить правильные соответствия в DBNames? База большая 19 гигов выгрузить ее в ДТ и поработать 1с тулс не возможно. Как на уровне скуля исправить ?
65. zhichkin 1259 10.01.22 13:48 Сейчас в теме
(64) Нужно больше информации: точное сообщение об ошибке, версия платформы, какая СУБД используется. Почему Вы решили, что именно в DBNames не хватает нужных сопоставлений ? Кроме этого ещё существует таблица DBSchema. Там тоже есть кое какая инфа по соответствию объектов и их таблиц в СУБД - его структуру не изучал особо.
1С тулз, насколько я понимаю, может работать с cf-ником. Если побились метаданные, то их и надо изучать - dt-шник при этом можно не трогать пока.
66. Batman1978 12.01.22 12:07 Сейчас в теме
Платформа последняя 19 кажется для бухгалтерии 3.0 всегда нужна самая последняя что бы обновы и т.д. накатывать. Конфигурация на поддержке

Почему Вы решили, что именно в DBNames не хватает нужных сопоставлений ? Кроме этого ещё существует таблица DBSchema.
что бы ответить вам - мне и нужно как раз посмотреть
Суть ошибки при запуске предприятия пишет не найдена таблица _infoReg147511 т.к. база не под рукой пишу цифры от головы но то что это регистр сведений я хорошо помню. Идем в SQL 19 стоит раскрываем таблицы - и там эта таблица есть она читается через sel ect * fr om т.е. она не битая. Но в предприятие я зайти не могу. На рабочем бекапе я сделал выгрузить сопоставление и посмотрел в итоге что это за таблица точно - но мне это не помогает - при падении базы выключили свет посыпалось очень много таблиц в скуле но в основном не самые важные - со стороны SQL я базу перешерстил - заливая заменяя таблицы битые из рабочего бекапа 3 месячной давности (заранее скажу - да я рабочий бэкап обновил до релиза конфигурации которая упала) в общем окно конфигурации у меня стало открываться но ТТИ проверка базы (ничего не исправляю просто проверяю логическую целостность базы) он у меня вылетает на этом сообщении. Даже пробывал перезолить DBconfig и DBparam из рабочего бэка в упавшую - да знаю что так нельзя но куда было деваться что были идеи то и делал конец года 2 дня до нового у бухов одно место горит (сдача отчетности). Ничего не помогло - как исправить незнаю. В Итоге они заново вносят доки, но спортивный интерес понять и как исправить остался все равно. Кстати рабочий бэкап тоже косячный вв плане конфигурации т.к. в dt не выгружается ошибка - какая не помню. В Итоге максиму что я смог - это предприятие открывается и любое действие база падает с ошибкой не могу найти таблицу
68. zhichkin 1259 12.01.22 14:33 Сейчас в теме
(66) Был похожий случай: в процессе бэкапа выключилось электричество. В итоге бэкап из 600 Гб превратился в 200 Гб. Затем этот урезанный бэкап как-то попал в рабочую базу. Странно, что при этом 1С запускалась и даже с какими-то объетами можно было работать. Ошибка была такая же: не найдена таблица и т.д. И таблиц в СУБД реально не было. Решили восстановиться из бэкапа в итоге, так как было очевидно, что если даже пересоздать таблицы, а сколько их - неизвестно, то данных в них не будет. Хорошо, что всего навсего два дня прошло как обнаружили проблему и некоторые данные были в центральной базе РИБ.

Перезаливка таблиц Config и Params, кстати, нормальная вполне операция. Некоторые админы их бэкапят перед динамическими обновлениями. Иногда это помогает восстановить работоспособность 1С в случае неудачного динамо.

По вашей ошибке: если 1С пишет, что она не может найти таблицу, то это значит, что она её ищет и где-то взяла название. Взяла она её из файла DBNames, который лежит в таблице Params. Можете прочитать этот файл и посмотреть что там внутри. Помочь восстановить работоспособность базы это не поможет, но так для себя поковыряться можно.
67. Batman1978 12.01.22 12:08 Сейчас в теме
Пишу с работы - база дома. Могу конечно все скриншоты повыкладывать вечером.
69. zhichkin 1259 12.01.22 17:33 Сейчас в теме
70. Batman1978 13.01.22 02:13 Сейчас в теме
Не пользуюсь телеграмм
увы :)
Оставьте свое сообщение

См. также

Глобальное меню разработчика для управляемых форм Промо

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Подсистема "Инструменты разработчика". Глобальное контекстное меню разработчика для управляемых форм в толстом клиенте.

03.08.2020    6689    tormozit    27    

JavascriptEditorSimple - замена NicEdit и whizzywig html editor

Инструментарий разработчика Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Бесплатно (free)

JavsscriptEditorSimple - HTML редактор для базовой замены форматированного документа.

08.08.2022    531    user1206119    6    

Ошибка при открытии StandardFindByRef.epf (описание и решение)

Инструментарий разработчика Платформа 1С v8.3 Россия Бесплатно (free)

Как решить ошибку вызова недокументированной обработки StandardFindByRef.epf.

28.07.2022    596    CyberMax    1    

Доработки конструктора запроса тонкого клиента. Часть 2 - исправление багов

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Упрощение заполнения пустых значений в объединениях, исправление всем надоевших ошибок.

19.07.2022    1689    Evg-Lylyk    9    

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 Промо

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

31.01.2019    94783    bonv    238    

Infostart Toolkit – чем инструмент будет полезен для аналитиков и консультантов

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

На митапе для аналитиков "Истории внедрения" выступил Евгений Люлюк – ведущий разработчик Infostart Toolkit. Он рассказал, какие инструменты помогут аналитику исследовать незнакомую базу, находить решения проблем, работать с данными и вносить в них точечные изменения.

04.05.2022    1430    Evg-Lylyk    0    

Все функции (Infostart Toolkit)

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Улучшенный аналог "Все функции" или "Функции технического специалиста" из набора инструментов Infostart Toolkit.

15.04.2022    2433    Evg-Lylyk    5    

DaJet Studio: расширенный язык запросов 1С, очереди сообщений и web сервисы Промо

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

DaJet Studio - разработка и управление скриптами, хранимыми процедурами и функциями, написанными на расширенном языке запросов 1С, а также очередями сообщений и web сервисами, основанными на использовании Microsoft SQL Server.

10.11.2020    10371    112    zhichkin    13    

Конвертация HTML в PDF программно

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Инструкция по конвертации HTML файлов в файлы PDF программно в 2 строчки и без заморочек.

09.03.2022    1694    maximus_2712    2    

Глобальное меню (Infostart Toolkit)

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Набор инструментов Infostart Toolkit. Глобальное меню для удобства запуска.

22.02.2022    2323    Evg-Lylyk    4    

Подписки на события (Infostart Toolkit)

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

Все подписки на события с отбором по метаданным, поиском подписки по подстроке, отображением объектов подписки и обработчиков (с возможностью посмотреть код).

26.01.2022    1725    Evg-Lylyk    8    

Сервис обмена кодом Промо

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Бывало так, что вам нужно быстро показать кому-то свой код, но опубликовать его негде, так как популярные сервисы просто не поддерживают раскраску кода 1С? Теперь решение есть!

26.06.2015    21207    Infactum    23    

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

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Украина Бесплатно (free)

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

20.01.2022    5431    dreamwaver_dz    37    

Загрузка метаданных из расширений в СППР

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Описание принципа, на котором можно сделать загрузку метаданных из расширений в СППР 2.

17.01.2022    1000    jf2000    0    

Решение некоторых задач с помощью "Отладчика запросов"

Инструментарий разработчика Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Управляемые формы Россия Бесплатно (free)

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

29.11.2021    1610    DrAku1a    6    

Подсистема "COMExchange": консоль запросов в режиме «Консоль кода». Промо

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Описана возможность использования обработки «Консоль запросов 1С+ADO» в качестве «консоли кода». При этом имеется возможность помещения результатов вычислений в «табло формул». Кроме результатов вычислений в это «табло» можно также вывести время выполнения и описание обработанных ошибок времени исполнения.

03.04.2014    26647    yuraos    2    

Выгрузка запроса с заполненными параметрами в файл для консоли запросов

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

Модуль для выгрузки запроса позволит сократить время при переносе запроса и его параметров в консоль запросов.

04.11.2021    1858    Margo462    10    

Тонкий конструктор СКД (Infostart Toolkit)

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Реализация конструктора СКД с нуля для управляемых форм. Контекстная подсказка для языка выражений СКД и другое.

01.09.2021    4619    Evg-Lylyk    22    

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

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Это небольшая статья для тех, кто хочет сам разрабатывать скрипты для нового Снегопата, или править сам движок Снегопата, или просто собирать модуль самостоятельно для внесения оперативных исправлений. В ней я расскажу, как установить и настроить всё необходимое для этого. Скрипты будем создавать на языке TypeScript, инфраструктура заточена именно под этот язык. Предполагается, что вы умеете пользоваться git’ом и настраивать переменные окружения.

26.07.2021    2542    orefkov    1    

VM1C - виртуальная машина для 1С Промо

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Демонстрация возможностей виртуальной машины для 1С. Создаем и выполняем код модулей в режиме Предприятия в реальном времени.

07.06.2013    29436    m.bolsun    46    

Своя форма выбора типа, метаданных (Infostart Toolkit)

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Зачем своя форма выбора? Полезные функции и особенности работы.

26.07.2021    3698    Evg-Lylyk    17    

Infostart Toolkit – инструмент, в котором сделано то, что давно просят от 1С

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Лауреат Infostart Awards-2019, ведущий разработчик инструментов Infostart Toolkit Евгений Люлюк рассказывает о том, как развивается, какие задачи закрывает и какие проблемы решает представляемый им набор инструментов разработчика.

09.06.2021    7550    Evg-Lylyk    5    

HTML таблица для начинающих

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Несколько примеров HTML таблиц со стилями и без. Хорошая замена отчетов на СКД.

02.06.2021    7007    dsdred    27    

Подсистема "COMExchange", "Консоль запросов 1C + ADO" - сервис обработки выборки запроса: грузим курс «бакса» ЦБРФ из файла *.dbf или *.xlsx. Промо

Инструментарий разработчика Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Бесплатно (free)

На примере загрузки курса валюты продемонстрированы возможности консоли запросов в составе подсистемы "COMExchange" для обработки данных из внешних файлов и их синхронизации с данными информационной базы 1С.

10.03.2013    33955    yuraos    3    

Редактор кода, запроса, ... Infostart Toolkit (интеграция с MS Monaco)

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Контекстная подсказка, подцветка синтаксиса в тонком клиенте. В платформе 1С редактор кода на управляемых формах обладает нулевой функциональностью, интеграция с MS Monaco позволяет запустится просто в космос.

28.05.2021    6978    Evg-Lylyk    14    

re: Flowcon

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Flowcon возвращается.

28.04.2021    2725    1c-intelligence    26    

10 полезных, но малоизвестных возможностей IS Toolkit

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Будет полезно пользователям Toolkit, а также тем, кому интересны возможности данного инструмента.

23.04.2021    3678    Evg-Lylyk    0    

Подсистема "COMExchange", консоль запросов, сервис обработки выборки запроса: корректируем регистры или «Берём банк, кассу, экспроприируем экспроприаторов». Промо

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

На примере шуточного примера продемонстрированы не шуточные возможности консоли запросов в составе подсистемы "COMExchange" для работы с регистрами, подчинёнными регистратору («обнуление» регистров, ввод начальных итогов (сведений), корректировка итогов).

31.03.2013    23136    yuraos    7    

Редактор схемы компоновки для тонкого клиента

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Аналог платформенного конструктора схемы компоновки данных для работы в тонком клиенте. Входит в состав набора "Универсальные инструменты 1С"

08.03.2021    5676    cprit    29    

Структура запроса (Infostart Toolkit)

Инструментарий разработчика Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Описание механизма разбора запроса на части (дерево), используемого в IS Toolkit и Управляемой консоли отчетов

02.03.2021    3112    Evg-Lylyk    14    

Отладка логики запроса в консоли запросов ИР

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Облегчаем поиск причины неожиданного результата запроса в консоли запросов из подсистемы "Инструменты разработчика" (ИР)

05.01.2021    8278    tormozit    8    

Разработка скрипта для проекта Снегопат Промо

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Подробное пошаговое описание порядка создания скрипта для проекта Снегопат (http://snegopat.ru) на примере скрипта "Авторские комментарии". Затрагивает ключевые особенности объектной модели, реализуемой Снегопатом.

12.02.2012    20744    kuntashov    59    

Работа с СКД в продукте "Infostart Toolkit"

Инструментарий разработчика Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Infostart Toolkit обладает большим количеством уникальных возможностей для работы с СКД – это анализ исполняемых текстов запросов, работа с внешними источниками в схеме СКД, получение данных в отладке и многое другое. Обо всех этих возможностях рассказал разработчик продукта Евгений Люлюк.

24.12.2020    3826    Evg-Lylyk    2    

Использование утилиты RING для проверки информации о программных лицензиях

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

В 1С есть утилита для проверки файлов с лицензиями 1С. Утилита существует довольно давно, но информация по ней разбросана, малопонятна и много где устарела, поэтому опишу свой опыт установки утилиты и работы с ней. Работаем под Windows.

16.12.2020    29443    budidich    21    

Метаданные и их идентификаторы

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Идентификаторы (GUID'ы) метаданных конфигурации. Немного о том, как их получить.

05.12.2020    19930    Infostart    28    

Скрипты для проекта Снегопат: автоматизация работы в Конфигураторе Промо

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Снегопат (http://snegopat.ru) – это проект по расширению возможностей конфигуратора 1С:Предприятия 8.2 как среды разработки прикладных решений. Для знакомых с ОпенКонфом, можно коротко сказать, что Снегопат – это ОпенКонф и Телепат, только для 1С:Предприятия 8.2 и уже на сегодня заметно круче :). Кроме специализированного функционала, который добавляется в Конфигуратор при использовании Снегопата, разработчики могут добавлять новый функционал самостоятельно, создавая свои собственные скрипты, автоматизирующие работу в Конфигураторе. Предлагаю вам обзор возможностей существующих на сегодня скриптов для Снегопата с короткими, но наглядными видеоиллюстрациями их работы.

16.01.2012    27629    kuntashov    42    

Отладка в Infostart Toolkit

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Отладка запросов, схем компоновки данных, просмотр содержимого менеджера временных таблиц.

05.11.2020    5461    Evg-Lylyk    16    

Настройка KDiff3 для исключения номеров строк в отчетах о сравнении конфигураций

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Те, кто часто обновляют доработанные типовые конфигурации, а потом проверяют корректность обновления, сравнивая отчеты о сравнении конфигураций, знают, как мешают при этом строки вида "Объект присутствует только в первой|второй конфигурации: 99 - 99", "Изменено: 99 - 99".<br /> Но если вы, как и я, пользуетесь для этого утилитой KDiff3, то есть простой способ избавиться от таких строк.

21.09.2020    4749    fillin    9    

Пробуем Снегопат (устанавливаем и настраиваем полнофункциональную триальную версию)

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

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

31.08.2020    13115    kuntashov    75    

paste1c.ru - сервис для обмена кодом для 1С:Предприятия

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Paste1C.ru - сервис для обмена кодом для 1С:Предприятия c подсветкой синтаксиса и подсказками.

21.08.2020    7360    salexdv    58    

Снегопат – Dev или Ops?

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Снегопат – программный комплекс, повышающий эффективность работы в конфигураторе 1С. О новом эволюционном этапе проекта, его возможностях и планах развития на митапе «DevOps в 1С» рассказал разработчик Снегопата, системный программист компании Инфостарт Александр Орефков.

17.08.2020    9122    orefkov    49    

Редактор HTML

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Инструмент из состава набора "Универсальные инструменты 1С" для быстрой адаптации html страниц для корректного отображения в Поле HTML документа

03.08.2020    4734    cprit    3    

Консоль кода и зачем она нужна

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Когда использовать, обзор консолей кода: плюсы - минусы.

27.07.2020    9423    Evg-Lylyk    50    

Обработка кодом результата запроса в Консоли запросов 9000

Инструментарий разработчика Запросы Бесплатно (free)

Пять вариантов обработки кодом в консоли запросов 9000: простое выполнение, построчно без индикации, построчно с индикацией, простое в фоне, построчно в фоне с индикацией.

01.06.2020    3165    kuza2000    7    

Выявляем и оптимизируем ресурсоемкие запросы 1С:Предприятия

Инструментарий разработчика Запросы Бесплатно (free)

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

24.05.2020    13995    DataReducer    24    

Шпаргалка. Автоматическое тестирование внешних отчетов и обработок в нескольких информационных базах

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Используем Автоматизированное тестирование на практике. Простой код для обновления и запуска внешних отчетов и обработок в нескольких ИБ. Создаем рабочее решение с нуля.

02.05.2020    6408    pparshin    21    

Проводим по БУ "на лету"

Инструментарий разработчика Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Бухгалтерский учет Налоговый учет Бесплатно (free)

В базе ERP и КА есть форма тестировщика, которая автоматически получает из конфигурации полные тексты запросов формирования бухгалтерских проводок выбранного документа, даёт возможность модифицировать запрос и сразу проверить результат.

01.05.2020    8404    sapervodichka    1