Защита разработок от копирования (Обычная и Управляемая форма)
Разработка - Защита ПО и шифрование
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Обфускация – приведение исходного текста или исполняемого кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции.
| Обычная форма |
|---|
![]() |
| Управляемая форма |
![]() |
Данная разработка является идейным продолжением разработки coder1cv8 [2 in 1] «Обфускация кода 1С» и «RegExp Тестер». В ней исправлены большинство ошибок разработки данного автора: корректно распознаются директивы компиляции, области, инструкции препроцессора, комментарии, корректно заменяются переменные (не знаю, как у вас, но у меня разработка автора просто так не шифровала код, все равно оставались какие-то частично не зашифрованные переменные.)
Для функционирования самой разработки в системе должна быть зарегистрирована компонента RegEx, а также для шифрования текста должна быть зарегистрирована компонента capicom.dll.
Как происходит обфускация:
- Удаляет комментарии.
- Удаляет области
- Заменяет не экспортные функции на guid.
- Заменяет не экспортные переменные и параметры на guid.
- Если необходимо шифрует с помощью capicom.dll строковые данные, каждый раз ключ разный.
- Директивы компиляции и инструкции препроцессора, всегда с новой строки
Обратите внимание, что если использовать шифрование строк в разработке, то это очень сильно замедляет работу, так как при расшифровки будет каждый раз создаваться comОбъект capicom, поэтому в вашем коде необходимо предусмотреть разовую инициализацию этой компоненты, тогда в разы ускорит работу.
Также на обычной форме есть кнопка "снять пометку с реквизитов формы" - она снимает пометку с тех переменных которые не соответствуют шаблону, где первые символы с маленькой буквы, а последующие с большой, либо один символ с маленькой буквы, это рассчитано на тех разработчиков, которые используют для идентификации переменных: глобальный - начиная с символа "м", локальных - "л" и т.д., хотя наверное эта кнопка и не нужна.
Также разработана аналогичная управляемая форма, работает в тонком и толстом клиенте.
Принимаются предложения и замечания. Если понравилась разработка, ставь плюс.
Дисклеймер. Я понимаю, что у программистов считается правилом хорошего тона делиться своим кодом, и сам не против этого, однако все мы взрослые люди, и никому не хочется, чтобы на нем наживались, поэтому делать код закрытым или открытым остается на усмотрение разработчика.
Поэтому не пишите, пожалуйста, комментарии «о этической стороне», «что закрываемый код и так никому не нужен» или что «данная защита ломается очень просто», да, такая защита ломается. Но данный способ защиты очень сильно замедляет разбор обработки, а стоимость защиты должна быть сопоставима со стоимостью разработки.

Общее
Перенос данных XML с Анализом и выборочной загрузкой.
Универсальный редактор таблиц и движения документа (LITE) (Обычная Форма)
Универсальный редактор таблиц и движения документа (PRO) (Обычная Форма)
Универсальный редактор Таблиц и Движений документов (Управляемая форма)
Запуск 1С под другим пользователем без пароля.
Защита разработок от копирования (Обычная и Управляемая форма)
Редактирование прав на файлы Windows
Управление торговлей 11
Установка цен в УТ11. Произвольный запрос к данным ИБ
ЗУП 2.5
Скрываем неиспользуемые виды расчета
[ОЗТ] Перезаполнить данные о начислениях текущего сотрудника (Обычная форма)
Комплексная И УПП
Форма работы с сотрудниками, как из зуп 2.5
ЕГАИС
Инвентаризация по акцизной марке ЕГАИС\Корректировка остатков ЕГАИС (Управление торговлей 10.3)
Вступайте в нашу телеграмм-группу Инфостарт
Обычная формаОбфускатор защита кода защита 1С 1с 8 обфускация изменения модулей
См. также
Информационная безопасность Защита ПО и шифрование Разработчик 1С 8.3 Бесплатно (free)
Вы вложили в одну процедуру всю ценность - формулу, коэффициенты, алгоритм, - продали обработку одному клиенту, а её тут же раздают дальше. Проверку ИНН прямо в коде вырезают за минуту: тело процедуры лежит рядом открытым текстом. Разбираю, как вместо этого зашифровать тело процедуры ключом из ИНН покупателя и получить готовый блок КодПодИНН для вставки в свою обработку: на чужом ИНН видно шифроблок, а не ваш алгоритм, и процедура не выполняется. Весь механизм на чистом BSL - потоковый шифр на штатном SHA-256 с нонсом, раздельные ключи и тег на HMAC, без СЛК и внешних компонент. И честно про потолок: почему это конфиденциальность логики, а не жёсткая привязка. В комплекте бесплатная демо-обработка.
вчера в 11:10 281 nedomolkov.ivan 8
Информационная безопасность Инструменты администратора БД Защита ПО и шифрование Системный администратор Разработчик 1С 8.3 1С 8.5 Россия Абонемент ($m)
Внешняя обработка для копии базы: заменяет персональные и коммерческие данные — наименования, ФИО, ИНН/КПП/ОГРН/СНИЛС с верными контрольными цифрами, телефоны, почту, счета, контактную информацию БСП, регистр ФИО физлиц. Правила по метаданным, предпросмотр, протокол. Любая конфигурация.
1 стартмани
10.11.2026 173 2 Drfreeman 3
Защита ПО и шифрование Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)
Настоящее современное криптостойкое шифрование с помощью сертификатов.
9 стартмани
01.09.2026 1156 3 SerVer1C 9
Защита ПО и шифрование Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Россия Абонемент ($m)
Дешифровка PEM файлов с SGN пакетом. PEM - стандартизированный текстовый формат текстовых контейнеров, используемый для безопасного хранения и передачи криптографических ключей, SSL/TLS-сертификатов и запросов на подпись (CSR). (Privacy-Enhanced Mail). SGN - стандартизированное расширение файла, содержащего отсоединенную (detached) электронную цифровую подпись для целевого документа. Пример файла: reportfile.zip.sgn.pem
1 стартмани
21.08.2026 769 0 DrZombi 1
Защита ПО и шифрование Разработчик 1С 8.3 1С:Розница 2 Бесплатно (free)
Учебная обработка показывает, как 1С шифрует номер карты публичным ключом RSA перед отправкой в платёжный шлюз и подписывает тело запроса - на чистом встроенном языке, без COM, .NET и внешних компонент. Почти все реализации RSA в 1С зовут .NET через COM, а он требует регистрации сборки и не работает на Linux и в тонком клиенте. Здесь RSA написан целиком на BSL: длинная арифметика, деление Кнута, возведение в степень по модулю. Корректность сверена с эталоном на больших числах байт в байт. Демо-ключ 256 бит, всё локально, одной кнопкой. Код открыт.
07.08.2026 1304 14 nedomolkov.ivan 2
Защита ПО и шифрование Разработчик Бесплатно (free)
Платёжный шлюз принимает номер карты только зашифрованным по RSA, а почти все реализации RSA в 1С зовут .NET через COM - и это молча ломается на Linux-сервере, в тонком клиенте и на голой Windows без regasm. Разбираю, как написать RSA целиком на встроенном языке: как хранить большие числа лимбами по основанию миллион, откуда берётся деление Кнута и square-and-multiply, почему первая версия считала 25 секунд и как это ускорилось в 8 раз. С проверкой байт в байт против внешнего эталона на больших числах.
07.08.2026 2128 nedomolkov.ivan 3
Защита ПО и шифрование Разработчик 1С:Предприятие 8 Бесплатно (free)
Платформенная защита модулей конфигураций, внешних обработок и расширений 1С легко «взламывается» общедоступными декомпиляторами, а использование СЛК (Система лицензирования и защиты конфигураций) часто избыточно из-за необходимости установки дополнительного ПО и покупки ключей. Рассмотрим использование методики защиты логики через обфускацию байт-кода, а именно частный случай использования метода, который позволит привязать решение к «железу» пользователя без использования внешних компонент и онлайн-активации.
19.02.2026 4699 1c-izh 10
Защита ПО и шифрование Разработчик Бухгалтер Пользователь 1С:Предприятие 8 Россия Абонемент ($m)
Обработка для подписи с помощью сертификата (ЭЦП) произвольных файлов, средствами платформы 1С.
5 стартмани
19.06.2025 2611 4 krundel 2
Оказывается, "для продвижения публикаций", кроме разноцветной рекламы внизу статьи, можно "поднимать" ветку обсуждений сообщениями об обновлениях не редактирую статью...
ЗЫ Что это со мной сегодня? Съел наверно что то...
ЗЫЫ Не проще ли вынести то что не хочешь в модуль с паролем? Трудоемкость поиска "ломалки" для запароленного модуля не намного меньше от "восстановления" исходника ...
Запароленные модули - ломаются за 1-2 минуты )
В свое время скачивал и протопит. Теперь скачал эту.
В обоих одно зло: небольшие процедуры обрабатывает нормально.
А чуть больше, так образуются длинные строки (2700 символов) .
Ставлю "ограничение = 100". Никак не реагирует.
Такие тексты просто не работают в редакторе. Он тормозит и глючит. (платформа 8.3.9)
Вторая проблема: мы программисты грешим, когда используем в именах переменных слова языка 1С. У кого нет такого текста?
Запрос = Новый Запрос;
Хорошо бы их не предлагать на изменение.
Третье предложение: дать опцию преобразовывать текст запроса или нет.
Объясню почему: вот так преобразовалось "КАК ЗарДох"+символы.пс+ "
а в потом в конце стоит значок непечатный символ, похожий на " о". Судя по тексту, им делят строки, но не получилось.
Некоторые пишут такой код, что начинаешь плеваться и проходишь мимо...
Жалко иногда приходится исправлять ошибки в таком коде, тут уже мимо ни как не получится пройти..
спасибо что ты есть, гитхаб
а если по другому подумать...у фрилансеров бывают недоборосовестнные заказчики.
Фрилансер сделал заказ, а заказчик пропал и не оплатил.
Зашифровать код, отправить триал версию, после оплаты полную версию предоставить,
Вот для этого можно и заюзать данный инструмент!
(20) МимохожийОднако, смотрите шире. Кроме сотрудников на ставке и всяких франчей еще есть фрилансеры. И иногда их пытаются обмануть с оплатой. Это как раз для случая, когда клиенту нужно показать работающий код для тестирования, который он после кражи не сможет использовать, получить вознаграждение и далее отдать полноценную работу.
ну если в код зашить ограничение по дате и зашифровать - то думаю не сможет ... именно для этих целей мне данная обработка интересна
Текущий файл уже с исправленной ошибкой ?
Функция Процедура1() Экспорт
Текст = "//";
Возврат Текст;
КонецФункции
Функция Процедура2() Экспорт
Текст = "//";
Возврат Текст;
КонецФункции
Функция Процедура1() Экспорт x34f5fdf9d4054708942e4b249b39edc8 = \1\2\3; Возврат x34f5fdf9d4054708942e4b249b39edc8; КонецФункции
который естественно не компилируются, поскольку \1\2\3 это явно не строка. Причем вместо \1\2\3 должно стоять все тот же текст "//" (шифрованием не пользовался).
Перестала работать )
не отрабатывает запрос после обфускации ((
(56) а как бы вы хотели, чтобы программа такой код зашифровала? в данном случае шифруется ведь не скомпилированный код, а просо текст, а у вас экспортная процедура, у которой, если поменять наименование может что-то сломаться в программе, так как эта процедура может вызываться в других местах, стандартная функция ТекущаяДата(), а также функция получения Даты, здесь просто нечему шифроваться.
(58) DrAku1a, я думал еще сделать деобфускатор, однако все равно наименование переменных и комментарии никак не восстановишь, и разбираться в таком коде та еще морока, я когда-то пытался разобраться в работе конфигурации Широкоформатная печать, хоть там код и был не шифрованным, однако я успел раз 300 обматерить того "разработчика", который писал его.
(57) Agapov_Stas, для того, что вы хотите нужен шифратор байт-кода, тогда действительно можно зашифровать так, что никто не сможет взломать, хотя точно не знаю, может уже есть какой-то деобфускатор.
Скачал обработку, проверил, и понял что она для меня ничего полезного не сделает.
Я хочу защитить код своей обработки тогда, когда создаю для нового заказчика демоверсию, которая перестанет работать через определенное время. Поэтому прописываю триал период в коде.
Вот что получилось после вашего преобразования:
Процедура ПривязатьОплаты() Экспорт Если ТекущаяДата() > Дата(2016,4,1) Тогда Возврат; КонецЕсли;Т.е. ничего вообще не изменилось. До этого выкладывали на ИнфоСтарте обфускатор кода, он меня тоже до конца не устроил, но у него лучше получалось.
Тут речь идет о комментариях в тексте запроса. Сразу отмечу, что удаление комментариев не будет являться решением, поскольку иногда их добавляют с той целью, чтобы потом эти комментарии заменить на что-то нужное с помощью СтрЗаменить.
Процедура Тест() x9cfbec67d813410cbf161778a7400fd8 = Новый Запрос; x9fe556d4a7a84a7e810b99dfb9d9562f = "ВЫБРАТЬ РАЗРЕШЕННЫЕ //Наименование Организации.Наименование КАК Наименование, //Наименование полное Организации.НаименованиеПолное КАК ПолноеНаименование ИЗ Справочник.Организации КАК Организации"; x9cfbec67d813410cbf161778a7400fd8.Текст = x9fe556d4a7a84a7e810b99dfb9d9562f; xbfcc5e2671274175b21383b9fdd8a9f4 = x9cfbec67d813410cbf161778a7400fd8.Выполнить();
x2b50b9ce97754ff396a0ad5206686d38 = xbfcc5e2671274175b21383b9fdd8a9f4.Выбрать();
Если x2b50b9ce97754ff396a0ad5206686d38.Следующий() Тогда Сообщить(x2b50b9ce97754ff396a0ad5206686d38.Наименование);
Сообщить(x2b50b9ce97754ff396a0ad5206686d38.ПолноеНаименование); КонецЕсли; КонецПроцедуры
Вроде нормально строку распознала, с учетом комментариев
Процедура Тест() x916220aab32c40a1b19622bc723f6cca = Новый Запрос; x5cbbbf848af145f3a8df8068ee514b31 = "ВЫБРАТЬ РАЗРЕШЕННЫЕ"+Символы.ПС+" //Наименование"+Символы.ПС+" Организации.Наименование КАК Наименование,"+Символы.ПС+" //Наименование полное"+Символы.ПС+" Организации.НаименованиеПолное КАК ПолноеНаименование"+Символы.ПС+"ИЗ"+Символы.ПС+" Справочник.Организации КАК Организации";
x916220aab32c40a1b19622bc723f6cca.Текст = x5cbbbf848af145f3a8df8068ee514b31; x7781e025410e4a0f8d4dba697f964a3a = x916220aab32c40a1b19622bc723f6cca.Выполнить();
xdc0ca4d0a3444b798b6f28ec65b7f97d = x7781e025410e4a0f8d4dba697f964a3a.Выбрать();
Если xdc0ca4d0a3444b798b6f28ec65b7f97d.Следующий() Тогда Сообщить(xdc0ca4d0a3444b798b6f28ec65b7f97d.Наименование);
Сообщить(xdc0ca4d0a3444b798b6f28ec65b7f97d.ПолноеНаименование); КонецЕсли; КонецПроцедуры
В принципе так нормально учитываются все переносы строк.
Процедура Тест()
Запрос = Новый Запрос;
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Организации.Наименование КАК Наименование,
| Организации.НаименованиеПолное КАК ПолноеНаименование
|ИЗ
| Справочник.Организации КАК Организации";
Запрос.Текст = ТекстЗапроса;
Резальтат = Запрос.Выполнить();
Выборка = Резальтат.Выбрать();
Если Выборка.Следующий() Тогда
Сообщить(Выборка.Наименование);
Сообщить(Выборка.ПолноеНаименование);
КонецЕсли;
КонецПроцедуры
ПоказатьА в чем сложность то с этим бороться? С тех пор как 1с добавили рефакторинг в конфигуратор заменять имена переменных прям очень не очень защита.
Или оно что то еще может кроме переименования и замены форматирования ?
Удаляет комментарии.
Удаляет области
Заменяет не экспортные функции на guid.
Заменяет не экспортные переменные и параметры на guid.
Если необходимо шифрует с помощью capicom.dll строковые данные, каждый раз ключ разный.
Директивы компиляции и инструкции препроцессора, всегда с новой строки
В принципе пока больше и ничего, Та же нетленка делает тоже самое.
Конечно можно вручную или с помощью рефакторинга заменять переменные (хотя на встроенный 1с-овский я бы не сильно надеялся, постоянно меня подводил, когда код более менее сложный), вопрос сколько на такую замену уйдет времени и будет ли вам все понятно. Сейчас это конечно довольно простая защита, но буду развивать.
Заменил переносы строк на "+Символы.ПС +", теперь корректно обрабатываются запросы. содержащие комментарии
Настроил немного по-другом получения кавычек в строке, надеюсь к ним больше не придется возвращаться.
все слова кроме строк приводятся к нижнему регистру.
Здравствуйте,
так и не понял как пользоваться(((
Только текст перегоняет - это пожалуйста, но открыл нужную обработку для защиты - увидел только глобальные переменные..., ничего окромя...
скопировал текст из форм - да, с ним отработал, вставил обратно в форму - куча ошибок )))
Поясните может. Может к версии платформы привязан?
Спасибо.
Система контроля версий типа git, mercurial или bazaar поможет получить желаемое.
Алгоритм примерно такой:
1.1 сделал обработку,
1.2 отладил и закоммитил,
2.1 создал ветку release 1.0,
2.2 в ней выполнил обфускацию и закоммитил
2.3 обработку отдал заказчику/ опубликовал.
Всплыла бага:
1.1 закрыл ветку release 1.0,
1.2 переключился на ветку develope,
1.3 внес исправления и закоммитил,
2.1 добавил ветку release 1.1,
2.2 в ней выполнил обфускацию и закоммитил
2.3 обработку отдал заказчику/ опубликовал.
А добавление какого либо ключа для обратной расшифровки - это дополнительная уязвимость для и так весьма слабой защиты.
Правильный подход (с моей точки зрения):
* Развить мегаидею до уровня, чтобы с ног валила
* Написать про нее на ресурсах уровня инфостарта/хабра, застолбив таким образом авторство
* Выбрать лицензию распространения кода (например, "Все платно, копировать запрещено")
* Еще раз отрекламировать свое решение, чтобы было понятно, где его покупать
Итого получается:
* все знают кто автор, что умеет делать его продукт, как получить этот продукт себе.
* при обнаружении злостного копирования - все ходы записаны, нарушение лицензии, суд, сибирь.
Про защиту идеи:
* благодаря публичности - многие подтвердят, кто застолбил идею
* идеи вообще защищаются патентами, а не обфускацией
* украсть идею, которая воплощена в обфусцированный код - ничего не стоит. Apple придумало телефон без кнопок с тачскрином. Кода никто не видел (закрыт и обфусцирован), но телефонов таких теперь кругом. Идеей воспользовались не имея кода apple в руках, т.е. идею это не защитило от копирования.
не корректно... у 1С исходники платформы закрыты, а это главное, что она продает...
* Для шифрования строк добавить бы ещё один способ, не требующий внешних компонент от конечного пользователя.
* Добавить индивидуальную настройку для процедур функций "не шифровать строки"
* Добавить флаг генерировать ненужный код и какой-нибудь числовой показатель для регулирования его объёма.
А на будущее - полная автоматизация. Выбираем внешнюю обработку-исходник, автоматически по имени подтягиваются настройки, на выходе обработка под ключ - изменены текст модуля и всех форм, добавлен пароль на модуль, пароль генерируется и сохраняется в настройках. Сейчас конфигурация умеет раскладывать обработку в xml и собирать обратно, поэтому можно там брать код и имена реквизитов форм...
Мне бы это сэкономило время при подготовке демо обработок после выхода новой версии основной обработки. ))
На счет автоматизации, например, в конфигурации КД3 я сделал средствами 1С выгрузку обработки в xml, замена текста модуля в файле и сборка обработки обратно.
Пока Истина Цикл
КаталогОбработки = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогОбработки);
ИмяФайлаXMLОбработки = КаталогОбработки + "\ОбработкаОбмена.xml";
ПутьКИБ = ОбщегоНазначения.ПолучитьПредставлениеИнформационнойБазы();
ИмяЛогФайла = КаталогОбработки +"\" + ФайлОбработки.ИмяБезРасширения+"_log.txt";
//{ Выгрузка обработки в файлы
КомандаЗапуска = КаталогПрограммы() + "1cv8.exe"
+ " DESIGNER "
+ "/F " + ПутьКИБ
+" /DumpExternalDataProcessorOrReportToFiles "
+ ВКавычках(ИмяФайлаXMLОбработки)
+ " " + ВКавычках(ФайлОбработки.ПолноеИмя)
+ " /Out" + ВКавычках(ИмяЛогФайла);
КодВозврата = Неопределено;
ЗапуститьПриложение(КомандаЗапуска, ФайлОбработки.Путь, Истина, КодВозврата);
СтрЛог = ПрочитатьФайлВСтроку(ИмяЛогФайла, КодировкаТекста.ANSI);
//}
Если Найти(СтрЛог,"Выгрузка завершена.")=0 Тогда
Прервать;
КонецЕсли;
//{ Загрузка обработки из файлов
ЗаписатьСтрокуВФайл(КаталогОбработки + "\ОбработкаОбмена\Ext\ObjectModule.bsl", ТХ.ПолучитьТекст());
КомандаЗапуска = СтрЗаменить(КомандаЗапуска,"DumpExternalDataProcessorOrReportToFiles","LoadExternalDataProcessorOrReportFromFiles");
КодВозврата = Неопределено;
ЗапуститьПриложение(КомандаЗапуска, ФайлОбработки.Путь, Истина, КодВозврата);
СтрЛог = ПрочитатьФайлВСтроку(ИмяЛогФайла, КодировкаТекста.ANSI);
//}
Если Найти(СтрЛог,"Загрузка завершена.")=0 Тогда
Прервать;
КонецЕсли;
Результат = Истина;
УдалитьФайлы(КаталогОбработки);
Прервать;
КонецЦикла;
ПоказатьМожет быть когда-нибудь подготовлю cfu и опубликую решение под ключ.
хотя на обычных формах работает(((
{Форма.Form.Форма(109,25)}: Тип не определен (ОписаниеОповещения)
лДиалог.Показать(Новый <<?>>ОписаниеОповещения("ОткрытьКодЗавершение", ЭтаФорма));
{Форма.Form.Форма(142,25)}: Тип не определен (ОписаниеОповещения)
лДиалог.Показать(Новый <<?>>ОписаниеОповещения("СохранитьКодЗавершение", ЭтаФорма));
{Форма.Form.Форма(687,110)}: Слишком много фактических параметров (ОткрытьФорму)
ОткрытьФорму("ВнешняяОбработка.ОбфускацияКода1С.Форма.ФормаВыбораЗаполненияУпр", , Элементы.ДеревоАнализа,,,<<?>>,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Функция ПроставитьРазделительСтрок()1) перед циклом
Для лСч=0 По лКолвоСтрок Цикл лНачалоБлока=0;2) внутри цикла заменяем
Если лНачало-лПозиция>=ОграничениеКолВаСимволов ТогдаЕсли лНачало-лНачалоБлока>=ОграничениеКолВаСимволов Тогда3) внутри
Если лНачало-лНачалоБлока>=ОграничениеКолВаСимволов Тогда КонецЕсли;лНачалоБлока=лНачало;Без поправок ограничение срабатывает, только если расстояние между соседними ";" больше ограничителя символов. Обработку скачивал давно.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 506875
Создание 28.03.16 00:07
Обновление 23.01.19 12:41
Просмотры 54355
Загрузки 381
Рейтинг
218
Комментарии 130
Код открыт Да
Рубрики Защита ПО и шифрование
Кому Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)

