Хранилище значения. Заметки

Публикация № 1320336 03.11.20

Разработка - Групповая разработка (Git, хранилище)

Хранилище значения СУБД размер данных

Некоторые подробности про общеизвестный инструмент.

Объект "ХранилищеЗначения" известен в 1С, начиная с 8.0 и, казалось бы, прост, понятен, изучен вдоль и поперёк. Но иногда возникают вопросы, касающиеся работы с хранилищем, и данная публикация (по сути, краткий антисклерозник) призвана зафиксировать ответы на некоторые из них.


Хранилище значения (далее ХЗ) представляет собой данные, полученные кодированием и, при необходимости, сжатием входных данных с помощью 32-х битного алгоритма Deflate, он же Deflation (о размерах сжатия см.ниже).
 

Хранение

Данные типа ХЗ могут храниться и обрабатываться в таблицах СУБД, в рамках модели данных 1С являясь реквизитами шапки, табличных частей, регистров, бизнес-процессов, задач; ресурсами регистров сведений, параметрами сеанса, общими реквизитами, функциональными опциями (на основе хранимых данных типа ХЗ). То есть, ХЗ может быть типом только для поля, хранящегося в базе (т.е. в отчётах, обработках, реквизитах/параметрах форм этого нет).

С точки зрения наиболее распространённых СУБД ситуация следующая.

SQL

ХЗ хранятся в полях IMAGE (тип данных SQL2003: BLOB), это традиционный тип LOB-хранилищ для SQL Server, в котором можно хранить как текстовые, так и двоичные данные. Хранит двоичное значение переменной длины до 2 147 483 647 байт (т.е. 2 Гбайт или 2^31 байт), механика выделения места под страницу таблицы и таблицу вообще варьируется в разных версиях SQL и разных настройках. Столбцы типа IMAGE (как и родственная ей TEXT) имеют множество ограничений на способы использования - например, нельзя создавать индекс по столбцу типа IMAGE, есть особенности при работе с хранимыми процедурами. При этом, значениями типа IMAGE можно манипулировать при помощи функций DATALENGTH, PATINDEX, SUBSTRING, TEXTPTR и ТЕХTVALID, а также команд READTEXT, SET TEXTSIZE, UPDATETEXT и WRITETEXT. Преобразования типа implicit conversion (а именно на них опирается 1С) возможны из IMAGE в: binary, varbinary, timestamp (логично, сплошь двоичное по сути), в него ещё можно из char и  varchar. Сам этот тип усердно НЕ рекомендуется к использованию в скуле, но до сих пор есть. Последние несколько версий платформ для хранения ХЗ в MS SQL используют тип VARBINARY(MAX). IMAGE является устаревшим и используется по накатанной из старых версий платформ.

PostgreSQL

ХЗ хранятся в полях bytea (ссылка стандарта на тот же тип данных SQL2003: BLOB). Для хранения нужны 4 байта плюс реальный размер битовой строки (т.е. 4 бита сверх трёхбитового заголовка самого потока Deflate). В двоичных строках можно хранить байты с кодом 0 и другими «непечатаемыми» значениями (обычно это значения вне десятичного диапазона 32..126). Обрабатываются они как двоичные в чистом виде (не как текстовые, не по языковым стандартам). Тип bytea поддерживает два формата ввода и вывода: "шестнадцатеричный" и традиционный для PostgreSQL формат "спецпоследовательностей". Входные данные принимаются в обоих форматах, а формат выходных данных зависит от параметра конфигурации bytea_output; по умолчанию выбран 16-ричный. Кстати, известно, что оный формат был введён в PostgreSQL 9.0; в ранних версиях он может и не работать - интересно, учитывает ли это платформа? По утверждению ИТС, содержит значение, если его тип "Хранилище значения", или последовательность байт нулевой длины в противном случае.

Кстати, если говорить об интеграции и внутренних передачах таких значений между системами - в Visual Basic, например, эти значения преобразуются в одномерные массивы Byte(). Этот массив имеет диапазон Byte (от 0 до length 1), где length — число байтов в значениях SQL Server binary, varbinary или image.

ХЗ не может фигурировать в составных типах. Однако, есть несколько способов обойти декларативный запрет и даже использовать в функционале: хранилище может быть определяемым типом, но только одиночным значением во всём типе (т.е. не составным), и может фигурировать как тип ПВХ (через определяемый), но тоже только одиночным. Возможно, именно так проявляется необходимость объявления требуемого места в таблицах СУБД.


Переменные и формы

Данные типа ХЗ могут храниться в переменной языка 1С в контексте выполнения , т.е. размещаться в поименованной области памяти. Ограничений на использование нет ни по типам модулей (общие, глобальные, модули объектов, менеджеров, форм, команд и т.д.), ни по исполнению на клиенте/сервере. Конструируется на сервере, а как переменная живёт и на клиенте. Является одним из традиционных способов рабоче-служебной сериализации данных, в т.ч. безотносительно степени сжатия, и передачи в сжатом виде. Само понятие "сериализация" в СП 1С привязано именно к ХЗ, т.е. возможность помещения значения в ХЗ терминологически и было долгое время сериализацией. В ХЗ может быть помещено любое значение, про которое это указано в СП, и любая универсальная либо обменная коллекция, состоящая только из сериализуемых значений на любую глубину вложенности.

Программное использование ХЗ не вполне прозрачно и очевидно. Так, чтение реквизита объекта типа ХЗ выполняют традиционно в "ПриЧтенииНаСервере", а запись - в "ПередЗаписьюНаСервере", потому что в данных формы ХЗ официально вроде как нет. На самом деле, возможны варианты. ХЗ может быть присвоено реквизиту формы (в т.ч. табличному реквизиту коллекции) с типом "Произвольный". Ряд ситуаций работы с ХЗ в клиентском контексте, несмотря на утверждения СП, не компилируется, т.е. для уверенности в результате лучше всё делать на сервере. Очевидно, что не стоит работать с ХЗ как с переменной модуля формы.

Находясь в коллекциях формы, НЕ может обрабатываться на клиенте (чтение/запись), но не теряется при передаче формы на сервер и обратно, сбросе кэша, переинициализации контекста. Может передаваться как параметр формы без его явного объявления в т.ч. в другую форму; может быть ключевым параметром формы - всё это корректно работает.

В обычных формах реквизит недоступен к выводу в список и на форму, но может фигурировать как значение реквизита формы произвольного типа или через определяемый (вообще в реквизитах только через него и можно "обернуть"), и как значение колонки таблицы/дерева значений произвольного типа.
В управляемых формах аналогично. Формально, выводятся сообщения, что "в данных формы нельзя", но если обёрнуто в произвольный реквизит, то хранит, обрабатывает и показывает.

ХЗ может фигурировать как аргумент в методе обычной и упр.формы Закрыть(хз), и корректно передаётся; может и фигурировать в ОписанииОповещения как результат закрытия формы, ранее открытой с указанием такового.
Важно: между сеансами для формы с авто (а равно и не-авто) сохранением значений произвольный реквизит с таким значением НЕ сохраняет!

Современное использование ХЗ поражает нетривиальностью - так, например, в БСП значения типа ХЗ хранятся и обрабатываются в параметрах СКД отчётов, и на этом основана целая механика работы. Вопросы трансляции и исполнения СКД, в чьих полях так или иначе фигурируют ХЗ или заявлена типизация ХЗ - тема отдельного исследования.
 

Кодинг

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

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

Поскольку нет возможности напрямую замерить объём, занимаемый переменной 1С в памяти, рассматривать приходится строки и двоичные данные, полученные из них. ХЗ удобно обрабатывать через xml

// из строки в ХЗ
хз=XMLЗначение(Тип("ХранилищеЗначения"),ИсходнаяСтрокаBase64);
// из ХЗ в строку
ИтоговаяСтрокаBase64=XMLСтрока(ХЗ);
стро1=XMLСтрока(хз);
// эквивалентно
стро2=СериализаторXDTO.XMLСтрока(хз);
// тогда как, например, такая сериализация гораздо больше по размеру
стро3=ЗначениеВСтрокуВнутр(хз);

Важно понимать, что ХЗ это не значение, а указатель на область памяти. Они всегда разные, поэтому ни сравнение, ни поиск, ни отбор (в т.ч. в запросах) применять нельзя. Указатель равен сам себе лишь в рамках конкретного оператора-конструктора (и, кстати, в этом случае по нему работает, например, поиск в универсальных коллекциях). Так, например, если "А=хз; Б=А;", то А будет равно Б. А для сравнения именно значений следует действовать так (причём это не будет распаковкой как "расжатием"):

СодержимыеВнутриХЗРавны=(XMLСтрока(хз1)=XMLСтрока(хз2));

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

Так вот, размер "как есть" мы можем узнать, либо создав объект метаданных (например, справочник с единственным реквизитом типа ХЗ) и получив размер таблицы методом ПолучитьРазмерДанныхБазыДанных, либо опосредованно, через строку и двоичные данные (учитывая неизбежно прибавляемое), так: 

Размер=ПолучитьДвоичныеДанныеИзСтроки(XMLСтрока(хз)).Размер();
// или так
Размер=Base64Значение(XMLСтрока(хз)).Размер();

Это не годится для абсолютных замеров (так, один символ латиницы, т.е. по идее 1 байт, и символ кириллицы, 2 байта, дают одинаковые 32 байта на выходе), но годится для относительных прикидок. Так, вызов без прямого указания "СжатиеДанных" всегда даёт значение большего (и иногда существенно большего, в разы) размера, чем с любым сжатием. На малых размерах сжатие не даёт заметного эффекта при любом аргументе. В СП сказано, что аргумент по умолчанию для объекта "СжатиеДанных" равен 1, но сжатие без его указания и с явным указанием даёт разные размеры, до десятков и сотен байт. На средних объектах (например, строки 500-1000 символов) сжатие со степенью выше 3-4 даёт примерно одинаковые итоговые размеры, т.е. эффективность одинаковая. Наряду с этим, в ряде старых релизов конструктор без сжатия даёт меньший итоговый размер.

Деструкция этого указателя тоже имеет нюансы. 

// правильные способы
хз="";
хз=Неопределено;
хз=Null;
хз=Новый ХранилищеЗначения(Неопределено);
хз=Новый ХранилищеЗначения(Null);
// неправильный способ
хз=Новый ХранилищеЗначения(""); // занимает как минимум на 3 байта больше, чем остальные

В таблицах/деревьях значений с явно объявленной колонкой может использоваться везде, кроме запроса (не помещается в ВТ), не воспринимается как аргумент запроса, даже как &ПараметрТипаХЗ в секции "ВЫБРАТЬ". Что, учитывая известное про СУБД, не вполне логично.

При копировании объекта с реквизитами, содержащими ХЗ, ни интерфейсно, ни программно, эти значения НЕ наследуются, не копируются.

Если некое значение, упакованное в ХЗ, подпадает под RLS, то логика следующая - платформа всегда вначале выполняет неявную распаковку, либо рассматривает сделанную в коде явную; а затем накладывает ограничение, так что RLS применится именно для уже распакованного значения, спровоцировать тут ошибку ни разу не удалось.

Из интересных публикаций рекомендую эту.

Поскольку в современных метаданных конфигураций реквизит типа ХЗ где-нибудь точно наличествует, а также фигурирует в коде, то вопрос занимаемого им места актуален. В связи с этим было бы интересно исследовать рост места, занимаемого таблицей, состоящей исключительно из ХЗ, а также сравнить эффективность работы "СжатиеДанных" и основанного на том же Deflation объекта "ЗаписьZipФайла", пробуя разные значения УровеньСжатияZIP (естественно, при МетодСжатияZIP = "Сжатие").

 

Возможно, этот привычный и вроде бы простой объект, Хранилище значения, преподнесёт (особенно на больших данных и нагрузках) ещё некоторые удивительные сюрпризы.

P.S. Опыты проводились на 8.3.6.2237 и 8.3.16.1224.

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

Отзывы
7. SlavaKron 05.11.20 15:04 Сейчас в теме
(4)
не используя 1С "вытянуть" данные из записи

Если версия MS SQL 2016 и выше, можно использовать функцию DECOMPRESS. Для хранилища значений:
SEL ECT
    DECOMPRESS(0x1F8B0800000000000400 + SUBSTRING(DataFieldName, 19, LEN(DataFieldName) - 18)) as Data
FR OM
    MyTable

Еще можно тут почитать: https://infostart.ru/public/1125887/
dmarenin; NittenRenegade; YPermitin; DrAku1a; Drivingblind; Yashazz; papa_harlo; +7 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. SlavaKron 03.11.20 09:20 Сейчас в теме
РазмерХЗПлюс=ПолучитьДвоичныеДанныеИзСтроки(XMLСтрока(хз)).Размер();
Это явно не правильно. Отсюда и проблемы, о которых вы говорите.
Размер ХЗ без учета размера описания ХЗ или просто размер сжатых данных:
Размер = Base64Значение(XMLСтрока(ХЗ)).Размер();
2. Yashazz 4477 03.11.20 10:06 Сейчас в теме
(1) Этот вариант тоже не даёт правильные данные, проверял. Но да, чего-то не внёс в статью; ща внесу.
3. Yashazz 4477 03.11.20 10:10 Сейчас в теме
Вообще очень не хватает нормального sizeof, применяемого как к пустой типизированной, так и к наполненной переменной... Много интересного узнали бы.
FatPanzer; +1 Ответить
4. papa_harlo 143 05.11.20 14:17 Сейчас в теме
Эх... мне бы Вашу статью неделю назад увидеть)))
может подскажите:
сохраняю картинку jpg в хранилище значений без сжатия.
селектом в MS SQL получаю запись, значение моей картинки содержит сигнатуру вида "0x0101........"
посмотрел здесь https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%81%D0%B8%D­0%B3%D0%BD%D0%B0%D1%82%D1%83%D1%80_%D1%84%D0%B0%D0%B9%D0%BB%­D0%BE%D0%B2
такой сигнатуры не существует. так и не понял как не используя 1С "вытянуть" данные из записи((((

(3)
Прикрепленные файлы:
5. papa_harlo 143 05.11.20 14:18 Сейчас в теме
7. SlavaKron 05.11.20 15:04 Сейчас в теме
(4)
не используя 1С "вытянуть" данные из записи

Если версия MS SQL 2016 и выше, можно использовать функцию DECOMPRESS. Для хранилища значений:
SEL ECT
    DECOMPRESS(0x1F8B0800000000000400 + SUBSTRING(DataFieldName, 19, LEN(DataFieldName) - 18)) as Data
FR OM
    MyTable

Еще можно тут почитать: https://infostart.ru/public/1125887/
dmarenin; NittenRenegade; YPermitin; DrAku1a; Drivingblind; Yashazz; papa_harlo; +7 Ответить
8. Yashazz 4477 05.11.20 16:45 Сейчас в теме
(7) Во! Спасибо, мил человек. Теоретически я это знал, а вот пристреляться по позициям всё времени не было. Спасибище!
6. aspirator23 340 05.11.20 14:29 Сейчас в теме
9. asved.ru 36 06.11.20 07:31 Сейчас в теме
ХЗ не может фигурировать в составных типах. Однако, есть несколько способов обойти


Увижу в коде - убью.
Если со стороны платформы что-то запрещено и причины этого вам не понятны, то это не необоснованный запрет, а недостаток знаний у Вас.
Поручик; +1 Ответить
11. Yashazz 4477 06.11.20 17:24 Сейчас в теме
(9) Ну лично мне-то причины понятны) И да, соглашусь - я за такое в реальном коде без прям жёсткой необходимости - тоже убивал бы.
Поручик; +1 Ответить
10. SerVer1C 554 06.11.20 08:57 Сейчас в теме
Последние несколько версий платформ для хранения ХЗ в MS SQL используют тип VARBINARY(MAX). IMAGE является устаревшим и используется по накатанной из старых версий платформ.
12. PythonJ 103 24.11.20 00:03 Сейчас в теме
В СП сказано, что аргумент по умолчанию для объекта "СжатиеДанных" равен 1, но сжатие без его указания и с явным указанием даёт разные размеры, до десятков и сотен байт.

В СП сказано:
Целое число в диапазоне -1...9. -1 - степень сжатия по умолчанию. 0 - никакого сжатия, 9 - максимальная степень сжатия.
Значение по умолчанию: -1.

-1 - не степень сжатия как таковая, а "степень сжатия по умолчанию для алгоритма Deflation", она не обязана быть равной 1 или любой другой из диапазона 1..9.
13. Jogeedae 38 11.12.20 08:38 Сейчас в теме
(12) Вроде как по-умолчанию было 6, а сейчас -1.

(0)
хз=Новый ХранилищеЗначения(Значение, Новый СжатиеДанных()) - насколько я понял, содержимое предваряется BOM (EF BB BF) - byte order mark, а уже потом сжимается.
Из-за этого разобрать содержимое в сторонних программах не всегда получается, даже если избавиться от описания сжатия данных обрезав первые 18 байт.

или что-то не так делаю?

хз = Новый ХранилищеЗначения(ДанныеДляСжатия, Новый СжатиеДанных(9));
//Через сериализацию получим строку Base64
Base64Строка_ = XMLСтрока(хз);

БуферДвоичныхДанных_ = ПолучитьБуферДвоичныхДанныхИзBase64Строки(Base64Строка_);

//отсекаем описание сжатия данных 1с
БуферДвоичныхДанных_ = БуферДвоичныхДанных_.ПолучитьСрез(18);

Base64Строка_Deflate = ПолучитьBase64СтрокуИзБуфераДвоичныхДанных(БуферДвоичныхДанных_);
Показать
14. Al-X 03.02.22 15:13 Сейчас в теме
Добрый день ! А подскажите, если есть у меня регистр сведений, и у него в реквизит типа ХранилищеЗначений. Будет ли автоматически удаляться данные ХЗ из базы данных, если удалить запись регистра значений ?
15. Yashazz 4477 03.02.22 15:24 Сейчас в теме
(14) Если там хранится ссылка на некое значение, то, конечно, ничего ниоткуда не удалится. Для ХЗ ссылочная целостность не поддерживается, так же, как и для любых сериализованных данных.
Поручик; +1 Ответить
Оставьте свое сообщение

См. также

Прокси хранилища 1С (IIS, OneScript)

Групповая разработка (Git, хранилище) OneScript DevOps и автоматизация разработки Платформа 1С v8.3 Россия Бесплатно (free)

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    4806    kamisov    24    

81

Отражаем хранилище в репозиторий git, Jenkins'ом

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Описание приемов по настройке копирования хранилища 1С в репозиторий git. С помощью gitsync, под управлением Jenkins.

16.06.2022    1518    ImHunter    1    

19

Работа с хранилищем конфигурации с разными версиями конфигуратора

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

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

08.06.2022    1507    curdate    10    

7

Скрипт перепривязки базы к хранилищу конфигурации

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Пример скрипта для перепривязки базы к хранилищу конфигурации, используя Python.

17.04.2022    1219    malikov_pro    0    

12

Выгрузка версии хранилища в XML файлы

Файловый обмен (TXT, XML, DBF), FTP Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Скрипт, выполняющий выгрузку произвольной версии из хранилища в XML.

17.03.2022    1034    kraynev-navi    2    

7

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Как подключиться к хранилищу конфигурации на сервере за NAT, если есть доступ по RDP?

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

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

01.06.2021    4193    Dipod    13    

53

Мастер-класс: Реализация цикла CI/CD на практическом примере с использованием системы Тестер

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

На онлайн-митапе Инфостарта «DevOps в 1С» выступил Дмитрий Решитко – руководитель отдела разработки в компании C.T. Consultants Inc. Дмитрий провел мастер-класс, в котором продемонстрировал, как создавать новую функциональность в конфигурации с одновременным использованием инструмента тестирования и реализовать автоматизированное тестирование конфигурации при помещении кода в репозиторий на GitLab.

31.05.2021    2421    grumagargler    0    

18

Технология разветвленной разработки конфигураций 1С

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Вся групповая разработка любой организации, где работает более 2-х программистов, в превосходящем большинстве случаев строится вокруг хранилища конфигурации. Те из нас, кто обращался к стандартам разработки 1С как минимум раз в жизни и читал их полностью (а может, и просто слышал от коллег), наверняка знают, что существует «Технология разветвленной разработки конфигураций» https://its.1c.ru/db/v8std#content:709:hdoc но не все поняли, как на самом деле эту замечательную вещь применять на практике, а кто-то понял и вероятнее всего думает, что «это к нам не относится, командная разработка по такой технологии в нашей организации не получится в силу определённых причин и потому применять её, к сожалению, я один не могу и не буду», до конца не разобравшись во всех аспектах, но это ошибочное мнение. В этой статье я постараюсь описать свой опыт, рассказать о преимуществах использования данной технологии, дать понять, что технология разветвленной разработки конфигураций на самом деле вещь индивидуальная и каждый для себя решает сам, применять её или нет, а также внести понимание, что у вас вообще нет никакой зависимости от своих коллег, работая в хранилище конфигурации при использовании этой технологии.

19.05.2021    9827    sinichenko_alex    45    

127

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Минимизация изменений в коде / Использование Хранилища общих настроек

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной публикации будет показан пример использования Хранилища общих настроек, и показано, как с его помощью можно минимизировать изменения в типовом коде.

14.11.2019    3516    biimmap    34    

2

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

Групповая разработка (Git, хранилище) Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

История одного проекта обновления, хранилище, групповая разработка.

06.11.2019    6092    vasilev2015    20    

23

Git для 1С-ника и другие технологии групповой разработки

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

У многих специалистов в отношении Git сложились стереотипы, мешающие начать работу с этим прекрасным и удобным инструментом. Почему его не стоит бояться, и чем он может упростить жизнь 1С-никам, рассказал архитектор ГК «Невада» Станислав Ганиев.

28.10.2019    16408    stas_ganiev    17    

63

Переход на разработку с хранением в Git, часть 1, подготовка репозитория

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Описываю свой опыт переноса разработки в git в малой группе. В тех статьях, которые уже есть, описывается полная цепочка. Думаю своими статьями снизить порог входа в достаточно важную часть разработки.

29.09.2019    10158    malikov_pro    14    

108

Как начать работать с Git

Групповая разработка (Git, хранилище) Платформа 1С v8.3 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Если Вы 1С программист, то обязательно наткнетесь на людей, рассказывающих о OScript, DevOps, EDT, SilverBulleters и так далее. Сейчас уже нельзя скрыться от этой информации. Так же было и со мной. В корне всего этого зоопарка лежит понимание и умение работать с Git (Распределённая система управления версиями). Укрупненной информации о ней много, Вы легко её нагуглите сами. В этой статье я старался собрать основные команды, определить их последовательность выполнения и привести краткий пример. Попробуйте выполнить все команды, и Вам станет проще разобраться с остальными программами. Удачи!

29.06.2019    10752    johnnyshut23    34    

64

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Исправляем медленное выполнение операций с хранилищем конфигурации

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В статье описан способ решения проблемы долгого захвата/помещения объектов в хранилище конфигурации

26.05.2019    17972    tormozit    21    

93

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    35695    ellavs    90    

250

Ошибки при работе с хранилищем конфигурации и способы их решения

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

В статье собраны наиболее распространенные ошибки при работе с хранилищем конфигурации и способы их обхода и решения.

01.03.2019    92588    Смешной 1С    40    

179

Git + 1С. Часть 2. Реализация Git workflow в 1С-разработке по шагам

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

28.01.2019    39319    stas_ganiev    32    

157

Еще раз про хранилище, или проблемы, с которыми мы столкнулись на практике

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

25.01.2019    3510    Lucifer93    2    

7

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою "копию" проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

18.10.2018    144439    stas_ganiev    90    

400

Одновременное использование хранилища и расширений

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

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

23.08.2018    15503    shaa2    3    

17

Повышаем эффективность разработки правил обмена

Групповая разработка (Git, хранилище) Обмен между базами 1C Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    32101    olegtymko    49    

152

Групповая разработка конфигураций в крупном холдинге

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

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

15.08.2017    26358    stas_ganiev    17    

78

Поиск несериализуемых значений при помещении в хранилище

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

В статье разобран пример, как найти несериализуемые значения в случае помещения в хранилище коллекций, содержащих вложенные элементы. В качестве хранилищ рассмотрены временное хранилище значений и переменные типа ХранилищеЗначения.

02.03.2016    27107    balanton    2    

14

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Работа с хранилищем конфигураций из командной строки

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Данное изложение на примерах демонстрирует работу с хранилищем конфигураций из пакетного режима

22.04.2014    20588    Franco    12    

26

Хранилище конфигурации: не очевидные особенности групповой разработки

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

03.06.2013    47059    _also    33    

105

Настройка удаленного хранилища 1С 8.2 IIS6 (server 2003)

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 ИТ-компания Бесплатно (free)

Перерыл инет, спрашивал на куче форумов, никто ничего вразумительного не ответил, в итоге докопался до истины.

26.11.2012    14734    alex.msk    3    

9

1с v8.2.13 ХранилищеЗначений в Табличной части объекта

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

21.12.2011    24560    kostia.ck    8    

23

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Сравнение значений типа Хранилище

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Сравнение значений типа Хранилище (простое решение для тех, кто не нашел ничего подобного на просторах интернета и не имеет навыков быстрого формирования контрольных сумм CRC, md5 средствами 1С, но имеет желание или необходимость выполнения такого сравнения). * было актуально для платформы 8.2, платформа 8.3 уже позволяет получить хеш MD5 или CRC32

18.10.2011    17496    yandextesting    6    

14

Хранилище конфигурации

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

Теперь можно забыть про типовое хранилище от 1С с которым на больших конфигурациях работать просто невозможно. Все изменения конфигурации будут сохраняться в автоматическом режиме на СУБД и вы всегда за доли секунды можете вернуться к старой версии или посмотреть изменения.

28.12.2010    22830    German    24    

76

Настройка удаленного хранилища конфигурации 1С 8.1 ( HTTP)

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Удаленное хранилище в 1С предприятии 8.1 позволяет группе программистов из различных мест(городов, стран, ...) совместно трудится над одним и тем же проектом или конфигурацией. Совсем не обязательно располагаться в одном здании, достаточно лишь, чтобы у заказчика и , желательно, у программистов был бы широкий доступ в интернет и компьютер с установленной операционной системой, например, Windows Server 2003 на сервере хранилища заказчика.

08.06.2010    34440    Veratis1c    12    

82

Хранилище конфигурации: создание и использование

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Заметка про Хранилище конфигурации 1С:8.х Зачем, кому и для чего оно может быть полезно? Как создать, как использовать, как организовать работу программистов с ней? "Неочевидные" и "невероятные" методики для чайников :)

12.01.2010    160614    kote    60    

322