Блокчейн в базе 1С

Публикация № 717210

Администрирование - Информационная безопасность

Вокруг блокчейна в последнее время поднято много шума. Курс биткоина кого-то радует, кого-то злит, но впечатляет всех. За всем этим остается не увиденной и не оцененной по достоинству изящная простота самой технологии. Блокчейн можно без особых затрат добавить к любой базе данных, и база 1С не исключение. В моем рабочем примере менее 200 строк кода в обработке, которая создает цепочку блоков. Еще 30 строчек занимает процедура контроля. Ниже я покажу по шагам - как сделать блокчейн в любой базе 1С, и что это даст в итоге.

В этой статье описывается преимущественно техническая сторона дела. Здесь в тексте много исходного кода на языке 1С. Если вам нужно популярное описание, без программного кода, тогда вам сюда: 

//catalog.its22.ru/public/1114877/

 

Шаг 1. Создадим документ Блокчейн

Цепочку блоков надо где-то хранить. Для простоты я выбрал объект метаданных "Документ". Вобще говоря, хранить цепочку можно и вне базы, хоть в текстовом файле. Также можно использовать справочник или регистр сведений. Я выбрал документ отчасти произвольно, отчасти потому, что в нем есть дата, а она может в дальнейшем пригодиться. Что бы это ни было, нам нужны четыре (всего лишь, впрочем, можно и три) реквизита.

КонтролируемыйДокумент, как можно догадаться - ссылка на документ любого вида. КлючНачальный, ХешДокумента и КлючКонечный - строки неограниченной длины (можно задать длину 64).

Шаг 2. Сделаем обработку генерации цепочки блоков.

Найдем последний элемент цепочки. Я сделал это так:

Функция ПолучитьПоследнийБлок()
	запрос=новый запрос;
	запрос.Текст=
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	Блокчейн.Ссылка КАК Ссылка
	|ИЗ
	|	Документ.Блокчейн КАК Блокчейн
	|
	|УПОРЯДОЧИТЬ ПО
	|	Блокчейн.Номер УБЫВ";
	выб=запрос.Выполнить().Выбрать();
	если выб.Следующий() тогда
		возврат выб.ссылка;
	иначе
		возврат неопределено;
	конецесли;
КонецФункции	

Запомним конечный ключ последнего блока, он станет начальным ключом первого созданного нами блока.

	ПоследнийБлок=ПолучитьПоследнийБлок();
	если ПоследнийБлок=неопределено тогда
		КлючНачальный="";
	иначе
		КлючНачальный=ПоследнийБлок.КлючКонечный;
	конецесли;

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

	запрос=новый запрос;
	текстзапроса=
	"ВЫБРАТЬ
	|	Док.Ссылка КАК Ссылка
	|ИЗ
	|	Документ.<вид> КАК Док
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.Блокчейн КАК Блокчейн
	|		ПО Док.Ссылка = Блокчейн.КонтролируемыйДокумент
	|ГДЕ
	|	Док.Проведен
	|	И Блокчейн.Ссылка ЕСТЬ NULL";

Строка <вид> в тексте запроса в дальнейшем заменяется на конкретный вид документа.

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

А вот собственно сама генерация цепочки блоков:

	видыдокументов=настройка.ПолучитьЭлементы();
	для каждого вид из видыдокументов цикл
		если вид.пометка тогда
			запрос.Текст=стрзаменить(текстзапроса,"<вид>",вид.имя);
			выб=запрос.Выполнить().Выбрать();
			пока выб.Следующий() цикл
				новблок=документы.Блокчейн.СоздатьДокумент();
				новблок.Дата=текущаядата();
				новблок.КонтролируемыйДокумент=выб.ссылка;
				новблок.ХешДокумента=ПолучитьХешДокумента(выб.ссылка);
				новблок.КлючНачальный=КлючНачальный;
				новблок.КлючКонечный=ПолучитьКонечныйКлюч(КлючНачальный,новблок.ХешДокумента);
				новблок.Записать();
				КлючНачальный=новблок.КлючКонечный;
			конеццикла;
		конецесли;
	конеццикла;

Функция ПолучитьХэшДокумента() - банальна, но я ее приведу.

Функция ПолучитьДокументСтрокой(ссылка)
	рез="";
	видд=ссылка.метаданные().имя;
	нвид=неопределено;
	ветка=настройка.ПолучитьЭлементы();
	для каждого вид из ветка цикл
		если вид.имя=видд тогда
			нвид=вид;
			прервать;
		конецесли;	
	конеццикла;
	если не нвид=неопределено тогда
		реквизиты=нвид.ПолучитьЭлементы();
		для каждого рек из реквизиты цикл
			если рек.пометка тогда
				поз=стрнайти(рек.имя,".");
				если поз=0 тогда
					рез=рез+строка(ссылка[рек.имя]);
				иначе
					имятч=лев(рек.имя,поз-1);
					имярек=сред(рек.имя,поз+1);
					для каждого стр из ссылка[имятч] цикл
						рез=рез+строка(стр[имярек]);
					конеццикла;
				конецесли;
			конецесли;
		конеццикла;
	конецесли;
	возврат рез;                
КонецФункции


Функция ПолучитьХешДокумента(ссылка)
	хд=новый ХешированиеДанных(ХешФункция.SHA256);
	хд.Добавить(ПолучитьДокументСтрокой(ссылка));
	рез=строка(хд.ХешСумма);
	рез=стрзаменить(рез," ","");
	возврат рез;
КонецФункции	

Строковое представление документа следовало бы сделать более изощренным и включить в него ИД ссылок. Если будете делать рабочую версию, доделайте функцию ПолучитьДокументСтрокой(). 

Чуть более интересна функция ПолучитьКонечныйКлюч(). Собственно здесь и кроется сама суть технологии.

Функция HEX(знач знч)
   рез= "";
   Пока знч > 0 Цикл
      рез = Сред("0123456789ABCDEF", знч%16+1,1) + рез;
      знч = Цел(знч/16) ;
   КонецЦикла;
   Возврат рез;
КонецФункции

Функция ПолучитьКонечныйКлюч(КлючНачальный,хеш)
	нули="00000000000000000000000000000000000000000000";
	нули=лев(нули,сложность);
	рез="";
	сч=0;
	пока истина цикл
		хд=новый ХешированиеДанных(ХешФункция.SHA256);
		рез=HEX(сч);
		хд.Добавить(КлючНачальный+хеш+рез);
		стр=стрзаменить(хд.ХешСумма," ","");
		если сложность=0 тогда
			прервать;
		иначеесли лев(стр,сложность)=нули тогда
			прервать;
		конецесли;
		сч=сч+1;
	конеццикла;	
	возврат рез;
КонецФункции	

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

Полностью процедура генерации цепочки блоков выглядит так:

Процедура ЗапускНаСервере()
	ПоследнийБлок=ПолучитьПоследнийБлок();
	если ПоследнийБлок=неопределено тогда
		КлючНачальный="";
	иначе
		КлючНачальный=ПоследнийБлок.КлючКонечный;
	конецесли;
	
	запрос=новый запрос;
	текстзапроса=
	"ВЫБРАТЬ
	|	Док.Ссылка КАК Ссылка
	|ИЗ
	|	Документ.<вид> КАК Док
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.Блокчейн КАК Блокчейн
	|		ПО Док.Ссылка = Блокчейн.КонтролируемыйДокумент
	|ГДЕ
	|	Док.Проведен
	|	И Блокчейн.Ссылка ЕСТЬ NULL";
	видыдокументов=настройка.ПолучитьЭлементы();
	для каждого вид из видыдокументов цикл
		если вид.пометка тогда
			запрос.Текст=стрзаменить(текстзапроса,"<вид>",вид.имя);
			выб=запрос.Выполнить().Выбрать();
			пока выб.Следующий() цикл
				новблок=документы.Блокчейн.СоздатьДокумент();
				новблок.Дата=текущаядата();
				новблок.КонтролируемыйДокумент=выб.ссылка;
				новблок.ХешДокумента=ПолучитьХешДокумента(выб.ссылка);
				новблок.КлючНачальный=КлючНачальный;
				новблок.КлючКонечный=ПолучитьКонечныйКлюч(КлючНачальный,новблок.ХешДокумента);
				новблок.Записать();
				КлючНачальный=новблок.КлючКонечный;
			конеццикла;
		конецесли;
	конеццикла;
	
КонецПроцедуры

Обработка генерации цепочки блоков готова. Можно позапускать ее в ручном режиме в учебных целях. В рабочем режиме потребуется заставить ее работать постоянно тем или иным способом.

Шаг 3. Сделаем обработку контроля.

С обработкой контроля все еще проще. Я скопировал предыдущую обработку, чтобы иметь тот же интерфейс настройки

и заменил процедуру генерации на процедуру контроля.

Процедура ЗапускНаСервере()
	контрольпройден=истина;
	ключ="";
	выб=документы.Блокчейн.Выбрать();
	пока выб.Следующий() цикл
		если выб.КлючНачальный<>ключ тогда
			сообщить("Блок "+выб.Номер+" нарушена последовательность блоков");
			контрольпройден=ложь;
		иначеесли лев(строка(выб.КонтролируемыйДокумент),1)="<" тогда
			сообщить("Блок "+выб.Номер+" документ удален");
			контрольпройден=ложь;
		иначеесли не выб.КонтролируемыйДокумент.Проведен тогда
			сообщить("Блок "+выб.Номер+" документ распроведен");
			контрольпройден=ложь;
		иначеесли выб.ХешДокумента<>ПолучитьХешДокумента(выб.КонтролируемыйДокумент) тогда
			сообщить("Блок "+выб.Номер+" документ изменен");
			контрольпройден=ложь;
		иначеесли не ЭтоКрасивыйХеш(выб.КлючНачальный,выб.ХешДокумента,выб.КлючКонечный) тогда
			сообщить("Блок "+выб.Номер+" неправильный хеш");
			контрольпройден=ложь;
		конецесли;
		ключ=выб.КлючКонечный;
	конеццикла;
	если контрольпройден тогда
		сообщить("Контроль пройден");
	конецесли;
КонецПроцедуры

Функция ЭтоКрасивыйХеш() - упрощенная вариация того, что мы видели в функции ПолучитьКонечныйКлюч() на предыдущем шаге.

Функция ЭтоКрасивыйХеш(КлючНачальный,хеш,КлючКонечный)
	нули="00000000000000000000000000000000000000000000";
	нули=лев(нули,сложность);
	хд=новый ХешированиеДанных(ХешФункция.SHA256);
	хд.Добавить(КлючНачальный+хеш+КлючКонечный);
	стр=стрзаменить(хд.ХешСумма," ","");
	если сложность=0 тогда
		возврат истина;
	иначе
		возврат лев(стр,сложность)=нули;
	конецесли;
КонецФункции	

 

Что в итоге.

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

Стоит заметить, что возможна также атака путем подмены контролирующей обработки. Но она настолько проста, что ее может визуально контролировать кто угодно. Как вариант можно регулярно скачивать контролирующую обработку (например, с инфостарта ))) ) .

Обработки тестировались на версии 8.3.10.2639.

Update 09.01.2018

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

1. Что это такое?
Блокчейн обычно связывают с криптовалютами. Данная технология не имеет отношения к майнингу криптовалют. Идея состоит в том, чтобы использовать особым образом связанную цепочку блоков (блокчейн) для контроля неизменности документов в информационной базе 1С.

2. Чем это лучше, того что есть сейчас?
В докомпьютерной бухгалтерии существовала (впрочем, она и сейчас существует, только не применяется на практике, по крайней мере в 1С) следующая концепция безопасности. Невозможно предотвратить неправомерные действия, но можно сделать так, что любое такое действие будет быстро выявлено. Современные информационные базы защищены системой прав доступа, паролями и т.д. Но. Когда злоумышленник преодолевает эту защиту, его дествия практически невозможно выявить. Например. Некто меняет в свою пользу в приходном документе количество и цену местами. Условно говоря, вместо 10 пачеки сахара по 1 рублю, ставит 1 по 10. После чего он может спокойно забрать 9 пачек себе. Скорее всего, об этом никто и никогда не узнает. Данная система позволяет создать абсолютную защиту, в том смысле, что любое изменение(удаление) контролируемого документа будет моментально обнаружено. Способов обмануть систему, в том числе путем подмены цепочки, нет. Подробнее см. п.4. 

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

4. Зачем нужен "майнинг"?
Майнинг конечно же в кавычках. Дело в том, что в настоящем майнинге основным моментом является поиск т.н. красивого хеша. Такого, который содержит в начале определенное количество нулей. В приведенном выше решении я тоже использовал этот прием. Ищется красивый хеш с количеством нулей, соответствующем заданной пользователем сложности. Моя идея заключалась в том, что злоумышленник всегда будет вынужден догонять. Тогда можно будет подобрать такую сложность, что затраты на подмену цепочки сделают атаку бессмысленной. Тут я несколько увлекся и упустил из виду, что злоумышленник может принять решение о подмене документа и сразу же начать строить альтернативную цепочку. Таким образом, атакующий и система находятся в равном положении. CSiER  обратил внимание на это и предложил отказаться от "майнинга" и дать пользователю возможность визуального контроля цепочки на предмет подмены. Пользователь записывает куда-нибудь ключ последнего на сегодня(или вчера) блока, а на следующий день сверяет свою запись с состоянием цепочки. В таком виде система действительно дает абсолютную защиту и в коммерческом решении я использую этот метод. Но я все равно оставил "майнинг". Дело в том, что если отказаться от него совсем (задать сложность 0), тогда ключ для контроля будет слишком длинным (64 символа). А если задать сложность 2 или 3, тогда ключ будет длиной 2-4 символа, что гораздо удобнее.

Коммерческое решение представляет собой две исходные обработки соединенные в одну и доработанные с учетом п.4. Интерфейс найстройки принципиально не изменился. Добавилась страница состояния, откуда можно переписывать ключи для контроля цепочки.

При выявлении того или иного нарушения, система выдает соответствующее сообщение.

Принципиальным отличием является то, что для хранения цепочки используется не документ информационной базы, а внешний файл XBase. Это дает возможность организовать негласную проверку базы, такую которая будет незаметна в том числе и для ИТ. Более подробное описание можно найти в руководстве пользователя.

На мой взгляд, надежный контроль неизменности документов - очень важная технология. Можно создать множество решений на ее основе. Если кто-то возьмется за это, то он может использовать код из данной публикации без каких-либо условий.

Update 22.01.2018

Платная версия, которую я представил в прошлый раз, подразумевала не совсем 1С-овский стиль работы. Документ попавший в цепочку блоков уже нельзя было менять совсем. При обнаружении изменения, нужно было вернуть документ в первоначальный вид. Я оставил эту платную версию под новым именем "Докчейн строгий". И в дополнении к ней предлагаю основную версию под названием "Докчейн. Защищенный журнал". В этой версии документы могут изменяться и удаляться. Все такие действия заносятся в ту же цепочку блоков и получается журнал, защищенный от изменений. Чтобы не загромождать данную публикацию, я создал новую:

//catalog.its22.ru/public/728995/

 

 

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.

Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.

Для возврата оплаты просто свяжитесь с нами.

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

Наименование Файл Версия Размер
Пример обработки для генерации
.epf 7,87Kb
18.12.17
29
.epf 7,87Kb 29 Скачать
Пример обработки для контроля
.epf 7,52Kb
18.12.17
28
.epf 7,52Kb 28 Скачать
Докчейн. Руководство пользователя.
.doc 247,50Kb
09.01.18
65
.doc 247,50Kb 65 Скачать бесплатно
Докчейн строгий 12 мес. 1 мес.
23.01.2018
1 2000 руб.

Моментальная
доставка

23.01.2018
2 4000 руб.

Моментальная
доставка

23.01.2018
0 500 руб.
23.01.2018
0 2000 руб.

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. TODD22 19 18.12.17 11:44 Сейчас в теме
Интересно. Надо будет по ближе посмотреть.

У вас этот "блокчейн" для какой то практической цели используется?

выб=запрос.Выполнить().Выбрать();
если выб.Следующий() тогда

Результат запроса на пустоту правильно определять
Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
КонецЕсли;

Что бы не создавать объект Выборка из пустого результата запроса.
for_sale; jif; rpgshnik; +3 Ответить
3. Техподдержка 18.12.17 11:59
(1) Спасибо за замечание!
gigabyte_artur; +1 Ответить
118. azhilichev 19.12.17 09:53 Сейчас в теме
(1) Если в любом случае используете выборку из результата запроса Выборка.Выбрать() , то не нужно проверять результат запроса на пустоту (https://its.1c.ru/db/v8std/content/-2145783209/hdoc).
119. TODD22 19 19.12.17 09:56 Сейчас в теме
(118)Так у автора вроде в том запросе про который я писал как раз и имеется проверка на пустоту. Значит запрос может быть пустым. Что не так?
121. azhilichev 19.12.17 10:30 Сейчас в теме
(119)
Что бы не создавать объект Выборка из пустого результата запроса.


Если в коде используете Выборка.Следующий() с последующей обработкой результатов выборки (как у автора), то перед этим Результат.Пустая() не обязательно делать. Вместо этого Выборка.Следующий() вернет Ложь, что и будет означать пустой результат.
122. TODD22 19 19.12.17 10:32 Сейчас в теме
(121)
Что бы не создавать объект Выборка из пустого результата запроса.
123. TODD22 19 19.12.17 10:34 Сейчас в теме
(121)
Там написано что проверять результат на пустоту надо с помощью "Пустой()". Что бы не создавать объект выборка из пустого запроса только для того что бы убедится что он пустой.

А если вы уверены что в результате вашего запроса всегда будет результат то тогда проверка "Пустой()" лишняя.

З.Ы. Хотя да... можно трактовать по разному. Если потом есть обработка то можно делать выборку. Но если результат может быть пустым то наверное всё же лучше через оператор Пустой.

З.Ы.Ы. Это я где то в каком то курсе по программированию видел(на спеца вроде). Там объяснялось что результат запроса надо проверять на пустоту, а не делать выборку из пустого результат, если результат может быть пустым. Если результат есть всегда то проверку на пустоту делать не нужно.

Хотя и в типовых очень часто проверку на пустоту делают Выборка.Следующий(). Или Выборка.Количество().
2. Техподдержка 18.12.17 11:58
Пока еще нигде не использовал. Просто решил продемонстрировать саму идею. Проверял на тестовой базе.
4. TODD22 19 18.12.17 11:59 Сейчас в теме
(2)Понятно. Да я вот то же почитал про технологию. Но вот практического применения пока не придумал :)
5. Техподдержка 18.12.17 12:01
Практическое применение в данной публикации. Вы делаете документы практически не изменяемыми.
6. TODD22 19 18.12.17 12:07 Сейчас в теме
(5)
практически не изменяемыми

"практически" или "не изменяемыми" ?

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

На одном из инфостарт эвентов вроде кто то делал доклад про блокчейн в 1С и видимо как то они его используют. Но давно было... наверное уже не найду.
for_sale; 7OH; spenser123; awk; sCHTASS; Morkhe; gradi; +7 Ответить
8. Техподдержка 18.12.17 12:22
(6) "Счастье не в деньгах, а в их количестве".
Вы сделаете. И стоимость успешной атаки на вашу защиту - 1 час работы начинающего.
Стоимость атаки на мою защиту зависит от выбранной сложности и может быть сколь угодно большой.
SunShinne; +1 Ответить
9. TODD22 19 18.12.17 12:23 Сейчас в теме
(8)Если в контексте "атаки" то может так оно и есть. Надо над этим подумать.
Просто я у себя такие риски не рассматриваю. По этому возможно чего то не понимаю...
10. Техподдержка 18.12.17 12:27
(9) Это только кажется паранойей. Я лично наблюдал ситуации. Некто деревня-деревней. Но вот как-то находит способ поменять 10 шт. за 1 руб. на 1 шт. за 10 руб. Откуда только что берется!
11. TODD22 19 18.12.17 12:34 Сейчас в теме
(10)
Я не с критикой :) Я когда сам думал как можно применять вот ничего в голову не приходило. Всё что пришло в голову решалось без блокчейна точно так же или даже проще.
12. Техподдержка 18.12.17 12:37
(11) Так вроде бы это на поверхности. Если первым словом звучит "блокчейн", то вторым "неизменяемость" (ну или "биткоин", для жадных)
7. Техподдержка 18.12.17 12:13
Вот я и делаю программными средствами. И мой способ надежнее всех прочих. Как вы программными средствами исключите атаку со стороны человека с паролем админа?
13. Fragster 1003 18.12.17 12:48 Сейчас в теме
Зачем тут поиск "красивого" хэша? В биткоине понятно - чтобы были "майнеры", а вот тут зачем? Чтобы электричество пожечь?
14. Техподдержка 18.12.17 12:50
(13) Чтобы получить защиту от изменения документов.
15. Fragster 1003 18.12.17 12:57 Сейчас в теме
(14) механизм цепочек эцп хешей + предыдущих подписей вполне с этим справится и без этого
16. Техподдержка 18.12.17 13:00
(15) Здесь нет ЭЦП. Просто база 1С. Самая обычная. Документ проводится, затем попадает в цепочку. И все - с ним уже ничего сделать нельзя. Никаким способом. Даже с паролем админа. Даже если влезть в базу напрямую. Никак. Только за большие деньги.
17. Fragster 1003 18.12.17 13:07 Сейчас в теме
(16) Советую все же почитать, что такое ЭЦП. В данном случае в качестве подписи используется конечный ключ.

>Даже если влезть в базу напрямую. Никак. Только за большие деньги.
в данном случае это заблуждение.
18. Техподдержка 18.12.17 13:11
(17) Смотрите. Вы удаляете что-то из середины цепочки, а потом быстро перестраиваете остаток цепочки. И все в порядке. Процедура контроля ничего не обнаружит. Красивый хеш нужен для того, чтобы исключить быстрое восстановление цепочки.
sulfur17; +1 Ответить
21. vadim1011985 76 18.12.17 13:19 Сейчас в теме
(18) а как тут красивый хэш поможет ?
23. Техподдержка 18.12.17 13:20
(21) Чтобы его найти, требуется время. Или дорогостоящее оборудование... и все равно время.
26. TODD22 19 18.12.17 13:35 Сейчас в теме
(23)
Чтобы его найти, требуется время. Или дорогостоящее оборудование... и все равно время.

В этом и проблема блокчейна. Палить килловаты энергии ради красивого хэша. Наверное должны быть другие менее ресурсозатратные инструменты.
27. Техподдержка 18.12.17 13:41
(26) "Что ничего не стоит, то ничего не стоит". Это - мудрая пословица.
Безопасность не может быть бесплатной. Мое решение хорошо тем, что уровень затрат на безопасность можно гибко подстраивать под конкретную ситуацию. Он может быть как скромным (но вполне достаточным, для того, чтобы у вас со склада не воровали, например, сахар), так и внушительным, таким, где стоимость атаки начинается от миллионов долларов.
29. TODD22 19 18.12.17 13:54 Сейчас в теме
(27)
Безопасность не может быть бесплатной.

Я не столько про "бесплатность" сколько про то что как бы не очень разумно тратить такие энергоресурсы. Хотелось бы более простой(дешёвый) способ генерации не изменяемых блоков.
32. Техподдержка 18.12.17 14:03
(29) Ну какие такие? Представьте - у вас 10 компов работают с 10 часов до 20 часов. Ну добавили вы к ним еще один, который работает круглосуточно. Какие ресурсы? Для большинства случаев - этого будет достаточно.
А если вы хотите действительно серьезной защиты - купите ASIC. Он будет половину времени работать на вашу безопасность, а половину времени майнить. В этом случае, как ни странно, затраты вообще выходят в ноль.
33. Техподдержка 18.12.17 14:06
(29) Я уж не говорю про тот случай, когда вы запустили процедуры в фоновом задании на сервере. И просто дозагрузили ваш сервер, который скорее всего загружен процентов на 10, а энергию потребляет.
127. Steelvan 19.12.17 12:07 Сейчас в теме
60. tailer2 18.12.17 15:23 Сейчас в теме
(26) никто не заставляет
нерентабельный майнер отвалился - требование к красоте уменьшилось

сгорят китайские фермы - люди будут майнить на нотбуках
39. Fragster 1003 18.12.17 14:23 Сейчас в теме
(18) ну а так "медленно" перестраиваете остаток цепочки... для "невозможности" подмены вашего способа также недостаточно. Достаточно разделения ответственности механизма подписи (ну, или контроля целостности, блокчеина или как вам будет удобно) (со временем подписи и, возможно, порядковым номером одноразового пароля) и собственно информационной системы.
+ дополнительным плюсом можно сделать "онлайн" подпись, с абсолютной невозможностью изменений задним числом, не дожидаясь попадания данных в "блокчеин"
20. Техподдержка 18.12.17 13:12
(17) Вы не просто так говорите. Вы атаку предложите. За маленькие деньги.
45. Fragster 1003 18.12.17 14:29 Сейчас в теме
(20) учитывая, что весь механизм находится в той же информационной системе - это пшик. Да и сам алгоритм... можно сделать ВК, которая будет считать мд5 хэши на видеокарте в тысячу раз быстрее, чем код в 1с. Стоимость разработки такой компоненты (по алгоритму из статьи) в пределах 5000 рублей.
OnicaIOn; +1 Ответить
47. Техподдержка 18.12.17 14:32
(45) Эту самую ВК вы и подключите в функцию ПолучитьКонечныйКлюч(), если захотите усилить свою защиту.
49. Fragster 1003 18.12.17 14:36 Сейчас в теме
(47) я сейчас совсем про другое говорю... при физическом доступе к ИС мы хоть заранее можем все хэши посчитать, изменить сам алгоритм хэшэй, снизив сложность и пересчитав хэши, сделать так, чтобы отчет показывал всегда "ок" (или наобоброт).
Так что безопасность "дутая".
192. Kosstikk 86 20.12.17 09:22 Сейчас в теме
(16) Сделать можно ) просто цепочка документов после будет считаться не валидной. Т.е. я такой "атакер", захожу в базу и меняю самый первый доукмент.. просто.. дальше система становится сбойной, т.к. вся цепочка - нарушена.. вы восстанавливаете систему, кстати как? )

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

Итак, блокчейн - это инструмент для неподменности данных в первую очередь. Но! Для этого требуется децентрализация.
81. SerVer1C 245 18.12.17 17:02 Сейчас в теме
(14) Чтобы получить защиту от изменения документов, давно придумали цифровую подпись. (Только это не защита, а контроль целостности).
84. Техподдержка 18.12.17 17:09
(81) Подпись - это совсем другое. Здесь нет подписей людей. Они не нужны. Да они и не защищают. Люди сговорились и поставили подписи под старым документом. Моя система исключает изменение "задним числом" в принципе.
SunShinne; +1 Ответить
22. Техподдержка 18.12.17 13:20
Чтобы его найти, требуется время. Или дорогостоящее оборудование.
24. kolya_tlt 22 18.12.17 13:26 Сейчас в теме
решение кажется не законченным, так как простой человек не видит результата, от слова совсем.
25. Техподдержка 18.12.17 13:30
(24) Простой человек может скачать обработки и позапускать их в любой базе. Единственное предупреждение - если в базе много проведенных документов цепочка будет строится очень долго. Либо распроведите большинство документов, либо подправьте запрос в обработке генерации.
28. Dzenn 389 18.12.17 13:51 Сейчас в теме
Если я правильно понял, суть любого блокчейна в том, чтобы отвергать любые изменения блока в цепочке. То есть, для эффективной реализации при помещения документа в блокчейн нужно где-то сохранять копию его состояния. И если по какой-либо причине состояние документа изменилось (удалили, изменили, распровели), восстанавливать его из копии.
30. Техподдержка 18.12.17 13:57
(28) Я реализовал только контроль. Восстановление документов делается обычным способом.
Кто-то хитрый взял и поменял местами количество и цену в старом документе. Контроль это обнаружил и выдал ссылку на документ. Бухгалтерия достала первичку и восстановила документ. Из "бумажного" бэкапа, так сказать.
SunShinne; +1 Ответить
31. TODD22 19 18.12.17 13:58 Сейчас в теме
(30)
Кто-то хитрый взял и поменял местами количество и цену в старом документе.

Так вроде "установка даты запрета редактирования" и ЖР должен решить эту проблему.
34. Техподдержка 18.12.17 14:08
(31) Я зайду в базу напрямую. Мимо всех этих ваших дат и ЖР. Здесь работы даже не на час, а еще меньше.
72. borodatii 3 18.12.17 16:27 Сейчас в теме
(34) а как Ваше решение отследит изменение, произведенное напрямую в базе? Путём пересчета всех хешей?
Т.е. КлючКонечный <> Хеш(КлючНачальный + ХешДокумента + Соль) для каждого документа.
При этом ХешДокумента - строка из значений всех реквизитов документа.
И проверять нужно будет с самого начала.
И как быстро оно будет работать, при активном документообороте, скажем, через месяц? 6 месяцев? 2 года?

В итоге появится "Дата запрета редактирования данных".
А когда она появится - мы не узнаем об изменении в документах старого периода.

А кто поменял? Нужно хранить пользователя, который записал. И дату, когда поменял.

В случае прямой записи в базу (что это за база, в которую любой Вася может писать напрямую? Куда админы смотрят?) всё равно мы только сможем факт изменения (а если будем использовать Дату запрета редактирования, то и это можем не узнать), ничего более.

В итоге, получим упрощенное версионирование.

А идея, в принципе, интересная.
73. Техподдержка 18.12.17 16:34
(72) Зачем такие сложности? Если есть изменения в базе, тогда ХешДокумента(в блоке)<>ХешДокумента(рассчитаный для контроля). Хеш документа - строка длиной 64 символа. Можно хранить двоичные данные, тогда это будет 32.
Если же внесли изменения в базу и одновременно заменили ХешДокумента, тогда КлючНачальный+ХешДокумента+КлючКонечный не дадут "красивый" хеш. Посмотрите код, он совсем короткий.
110. borodatii 3 19.12.17 07:01 Сейчас в теме
(73) чтобы узнать, что ХешДокумента изменился, нужно проверить всю цепочку блоков, начиная с первого.
(110) Не обязательно. Можно проверять с любого места. Обрезали основную базу. Отправили часть в архив. То же самое делаете с цепочкой блоков.
126. borodatii 3 19.12.17 12:01 Сейчас в теме
(124)
Можно проверять с любого места.
А нужно - с начала цепочки, ибо изменения могли быть где угодно, мы же напрямую в базу лезем.

Обрезали основную базу
Каждые полгода обрезать?

То же самое делаете с цепочкой блоков
А если изменят те документы, цепочка которых в архиве?
Alex_YAM; +1 Ответить
35. Техподдержка 18.12.17 14:10
(31) Стоимость успешной атаки на вашу схему - около 2000 руб.
37. vadim1011985 76 18.12.17 14:20 Сейчас в теме
(35) Так и у вас решение не защищает, Измените цену - это покажите и ваше предупреждение и ЖР а что конкретно изменили -ни ЖР ни блокчейн не покажет .
41. Техподдержка 18.12.17 14:24
(37) Я изменил документ мимо ЖР. Мое решение это отследит. Ваше - нет.
SunShinne; +1 Ответить
42. vadim1011985 76 18.12.17 14:25 Сейчас в теме
(41) я удалил последний документ из блокчейна - теперь и ваше решение не отследит
46. Техподдержка 18.12.17 14:29
(42) Удалили последний документ и последний блок. Чудьненько. Пришла бухгалтерия спросила. Вы почему не работаете? Почему до сих пор документы за этот день не ввели?
200. Dementor 689 20.12.17 20:22 Сейчас в теме
(46)
Почему до сих пор документы за этот день не ввели?

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

Технологию блокчейна теоретически можно применить в нашей работе, но не в указанном вами случае! Зачем вообще нужно проверять всю историю документов в базе, если махинации на практике проводят в текущем оперативном диапазон (до недели), в рамках которого восстановить цепочку будет несложно?

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


В таком случае у меня, как у вашего потенциального взломщика (того самого, который умеет обходить дату запрета редактирования, RLS и все варианты версионирования), есть простой и надежный метод взлома вашей системы. Выборочно беру несколько звеньев и в СУБД напрямую изменяю связанные исходящий и входящий хеши - вам звоночек, что документы кто-то изменил - ищите его бумажную копию в архиве, сверяйте и понимайте что творится какая-то непонятная херня. Вы в панике пытаетесь восстановить какой-то из старых бэкапов для сравнения, но (у меня же по условиям ситуации есть доступ к СУБД), как только я решил ломать систему, я позаботился о том, что бы бэкапы стали "невосстанавливаемыми". И теперь у вас выбор: или плюнуть на весь этот блокчейн и забыть как страшный сон, или заплатить китайским майнерам за восстановление цепи и заметания следов моих преступлений.

Да и запись в блокчейн документа в течении 4-10 минут - это полный бред. Защита имеет смысл в компаниях с большим оборотом, когда каждую минуту вводят несколько документов - ваш централизованный блокчейн на базе Proof-of-Work просто уничтожит бизнес.
vladimirmatancev; +1 Ответить
(200) Если некто может провести успешную атаку в последней неделе, значит у вас нет нормальной системы учета и контроля. При нормальной системе успешная атака возможна только в достаточно "древнем" периоде, который никто уже точно проверять не будет. Неделя должна быть проверена и перепроверена. Документ введеный в понедельник, должен быть проверен в понедельник и перепроверен в пятницу.
Поломать ключи и вывести из строя саму систему, не трогая при этом документы - интересная мысль. Но к чему такие сложности? Можно ведь просто выбросить сервер в окно. Успешная атака - это когда вы что-то сделали и никто ничего не узнал.
Какая разница - сколько времени пишется документ в блокчейн? Основной системе от этого ни холодно ни жарко.
219. Dementor 689 21.12.17 00:31 Сейчас в теме
(216) если есть нормальная система учета и контроля, то никакой блокчейн не нужен! Вполне достаточно или версионирования из БСП или платформенной истории изменения объектов, что бы узнать кто и что изменил. Сама же СУБД должна быть защищена и, если есть параноидальное подозрение, что админы могут сливать какому-то хакеру информацию о пароле доступа, то их можно периодически проверять на полиграфе.

Я скачал обработку вот прямо отсюда. Зашел в базу. Выбрал "файл/открыть". Открыл обработку и нажал кнопку "Запуск". Опишите атаку на эту последовательность действий со стороны "программера уровня Бог".


Каждый день наблюдаю за этой процедурой. В какой-то момент отвлекаю внимание и быстро устанавливаю в браузере расширение Tampermonkey или подобное; скрываю видимость иконки на панели; забрасываю на выполнение мой скриптик. Мой скрипт обнаружив, что просматривается сайт Инфостарт заменяет ссылку на обработку другой ссылкой, которая ведет на мой сервер, где лежит моя обработка, которая всегда будет возвращать успешность проверки.

И это я еще не хакер! Был бы хакером, то установил бы на компьютере резидентную программу, которая анализировала запросы к файловой системы. Если обращается процесс со словом designer, то отдавал бы оригинальную обработку - проверяйте сколько хотите, но если обращается на чтение процесс платформы в режиме предприятия, подсовывал бы свою модифицированную обработку.
vladimirmatancev; +1 Ответить
(219) Никакая система визуального контроля не в состоянии контролировать всю базу постоянно. Для этого и нужен блокчейн. Резидентная программа - это интересно. Надо поизучать вопрос.
44. vadim1011985 76 18.12.17 14:27 Сейчас в теме
(41) я вообще никакого решения не предлагал. Просто присоединился к обсуждению так как тема интересна
36. vadim1011985 76 18.12.17 14:16 Сейчас в теме
(28) не копию -просто каждое изменение фиксируется в цепочке и его можно отследить. Суть блокчейна в том что
информация одновременно открыта для чтения - все могут видеть все НО + информация защищена от изменений из вне. изменять могут только те для кого эта информация предназначена
38. Техподдержка 18.12.17 14:21
(36) То, что попало в блок цепочек изменить не может никто. В случае с биткоином - совсем никто. В моем примере - практически никто. Неизменяемость - главное свойство блокчейна.
40. vadim1011985 76 18.12.17 14:24 Сейчас в теме
(38) что мешает пользователю с правами админа в конфигураторе грохнуть ваш документ ?
43. Техподдержка 18.12.17 14:27
(40) Ничего не мешает. Только всю цепочку, начиная со следующего документа придется перестраивать. Иначе контроль это обнаружит.
48. vadim1011985 76 18.12.17 14:35 Сейчас в теме
(43) мне никто не мешает изменить ваш код что бы получить нужный результат
51. Техподдержка 18.12.17 14:57
(48) Код контрольного модуля 30 строк. Его любой может проверить визуально. Также можно просто время от времени скачивать правильный код из публичного доступа.
104. Inkasor 26 18.12.17 21:37 Сейчас в теме
(51)Можно и через http api на другую, аудиторскую, машину вытащить.
50. ADirks 182 18.12.17 14:43 Сейчас в теме
Что-то мне подсказывает, что контроль наличия изменений, и гарантия неизменности данных - это не одно и то же.
vladimirmatancev; artbear; the1; +3 Ответить
53. Техподдержка 18.12.17 15:02
(50) Мое решение поразумевает, что при обнаружении изменений есть всего три варианта дальнейших действий.

1. Провести расследование и восстановить документ в первоначальном виде.
2. Плюнуть на все и отказаться от дальнейшего использования системы безопасности.
3. Попросить знакомого китайского майнера задействовать его ферму для восстановления правильной цепочки.

Исходя из этого, я и утверждаю, что мой контроль дает гарантию неизменности.
sulfur17; +1 Ответить
52. karimov_m 18.12.17 15:02 Сейчас в теме
Пока не читал, но сразу напишу что опередил, тоже готовлю статью как реализовать принцип блокчейна средствами 1С ))
54. Техподдержка 18.12.17 15:03
(52) Две статьи лучше, чем одна. Welcome!
55. Йожкин Кот 1079 18.12.17 15:13 Сейчас в теме
Спасибо за пример! Комментирующие, видимо, не совсем понимают суть технологии блокчейна и предлагают использовать ЭЦП, переписать обработку или программно запретить изменение данных базы
SunShinne; support; +2 Ответить
58. Техподдержка 18.12.17 15:19
(55) Спасибо вам за отзыв! Но я также и всем комментаторам благодарен. Они помогают раскрыть суть технологии для всех.
59. acsent 1148 18.12.17 15:20 Сейчас в теме
(58) А можешь написать статью про Proof of Work. было бы интересно
61. Техподдержка 18.12.17 15:25
(59) Ну разве что придумаю, куда его прикрутить в 1С. Чисто теоретические статьи пока не писал.
64. TODD22 19 18.12.17 15:36 Сейчас в теме
(55)
Комментирующие, видимо, не совсем понимают суть технологии блокчейна

Так объясните?
и предлагают использовать ЭЦП, переписать обработку или программно запретить изменение данных базы

предлагают ту же задачу решать другими способами. Вопрос в чём преимущество именно этой технологии для решения конкретной задачи? А не любой другой технологии.
Вопрос в том когда блокчейн для решения задачи это хорошо. Что бы не было "блокчейна" ради "блокчейна".
67. Йожкин Кот 1079 18.12.17 15:50 Сейчас в теме
(64) Не хочу показаться грубым, но Вас в Яндексе/Гугле забанили?
Одно из преимущество в (56) описано
56. acsent 1148 18.12.17 15:14 Сейчас в теме
Смысл блокчейна не неизменности документов, а в возможности рапределенной сети без доверия.
Но так как тут сеть из 1 узла, то смысла в ней конечно нет.
А для контроля неизменности достаточно версионирования, что в 1с уже есть, и даже в платформе.

Ведь если есть полный доступ к базе, то можно удалить все ключи позднее документа и все пересчитать заново
vladimirmatancev; rpgshnik; +2 Ответить
57. Техподдержка 18.12.17 15:17
(56) Неизменность тоже чего-то стоит. Нет?
Я ведь не биткоины майнить предлагаю, а сделать такую систему, чтобы сахар со склада не воровали.
65. TODD22 19 18.12.17 15:38 Сейчас в теме
(57)
чтобы сахар со склада не воровали.

Так блокчейн пока за руку не ловит. То что в программе не изменили, не означает что со склада не унесли.

Значит область сужается до того что система только отслеживает изменения в базе.
vladimirmatancev; rpgshnik; +2 Ответить
66. Техподдержка 18.12.17 15:49
(65) Если унесли, не изменив в базе, это не проблема. Вычли из зарплаты и попросили больше так не делать.
Проблема, когда унесли, изменили в базе и никто не узнал.
63. Техподдержка 18.12.17 15:34
(56) Весь смысл этого решения в том, что "все пересчитать заново" нельзя. Не то чтобы совсем-совсем. За приемлемые деньги нельзя. Некто поменял в старом документе 10 пачек сахара по 1 рублю на 1 пачку по 10 рублей и пошел довольный домой с 9 пачками. На версионирование ему начхать. Он в базу напрямую влез. Это если без моей системы.
А с моей системой за эти несчастные 9 пачек придется потратить ресурсы, которых хватит на один биткоин. 9 пачек ведь не стоят один биткоин?
133. TuneSoft 19.12.17 13:01 Сейчас в теме
(63)
если юзер с правами админа к примеру изменил документ, удалил версию документа, удалил все записи "вашей системы" то чем поможет "ваша система" ?
(133) Процедура генерации блоков начнет строить цепочку сначала. Не сможет это сделать за отведенное ей время и факт раскроется.
153. TuneSoft 19.12.17 17:12 Сейчас в теме
(140)
Процедура генерации блоков начнет строить цепочку сначала. Не сможет это сделать за отведенное ей время и факт раскроется.


Раскроется факт что что-то изменили, но в каком объекте будет неизвестно.

"А с моей системой за эти несчастные 9 пачек придется потратить ресурсы"

Не придётся.
62. tailer2 18.12.17 15:32 Сейчас в теме
68. acsent 1148 18.12.17 16:04 Сейчас в теме
А сколько по времени подписывается 1 документ?
70. Техподдержка 18.12.17 16:17
(68) Это зависит от выставленного вами уровня сложности. Конкретно я для тестирования использовал 4-й уровень. На моем core i5 выходило около 10 сек. на документ. Сложность 5 давала около минуты. В данном примере я не использовал побитовые операции, поэтому у меня шаг настройки сложности достаточно большой (4 бита). По хорошему, надо бы сделать побитовые шаги.
74. the1 540 18.12.17 16:41 Сейчас в теме
(70) Мне кажется, или это неприемлемо много?
Прикрепленные файлы:
vladimirmatancev; +1 2 Ответить
75. the1 540 18.12.17 16:43 Сейчас в теме
(74) шучу, конечно, минус не ставил, тема интересная, заставила под другим углом посмотреть на модную тенденцию
SunShinne; +1 Ответить
76. Техподдержка 18.12.17 16:48
(74) В данном случае нет смысла говорить много или мало. Чтобы система работала, время на подпись не должно быть ни большим, ни маленьким. В идеале оно должно быть таким, чтобы 24 часов впритык хватало на подпись вновь поступивших за эти 24 часа документов.
69. Synoecium 682 18.12.17 16:17 Сейчас в теме
Спасибо. Вы смогли простыми словами и примерами поведать о довольно сложных вещах (на самом деле не настолько сложных :)
71. Техподдержка 18.12.17 16:18
(69) Очень хорошо, что вы увидели простоту.
77. starik-2005 2149 18.12.17 16:50 Сейчас в теме
Блокчейн без распределенной базы - штука бессмысленная, ибо суть технологии в том, чтобы данные транзакций были доступны всем держателям распределенной базы, что позволяет без доверительного центра иметь возможность удостовериться в истинности операции.

Но в общем и целом, если сократить круг держателей базы транзакций до участников некоторой хозяйственной деятельности, то интерес к этой технологии может быть оправдан и необходимости в дополнительной математике уже не будет, т.к. любой узел просто не даст поступить изменению, а записи в узле с изменениями при первом входящем пакете с контрольной суммой будут скомпрометированы и признаны недействительными и система перейдет в режим синхронизации разрушенных ("подмененных") блоков.
vladimirmatancev; SunShinne; Di-dog; +3 Ответить
78. Техподдержка 18.12.17 16:53
(77) Эта статья - заявка на то, что блокчейн и в обычной базе ничего себе блокчейн. Я делаю базу с неизменяемыми транзакциями. И это имеет свой смысл.
SunShinne; +1 Ответить
79. starik-2005 2149 18.12.17 17:00 Сейчас в теме
(78)
И это имеет свой смысл.
Можно написать триггер для SQL-базы, который будет в запись подставлять некий хеш при INS ERT и просто ничего не делать при UPDATE и DELETE - и этого уже будет достаточно, чтобы сделать таблицу неизменяемой. Дальше при SELE CT триггер на валидацию и флаг того, что строка таблицы не удовлетворяет условию связанности. Т.е. 1С тут как таковая и не нужна.
82. Техподдержка 18.12.17 17:04
(79) Стоимость успешной атаки на вашу систему в пределах 2000 руб. Стоимость успешной атаки на мою систему зависит от выставленного уровня сложности. Это может быть и 20 тыс. долларов (условно 1 биткоин) и миллион долларов. Сравните.
Оставьте свое сообщение

См. также

SALE! 20%

Базовый курс для начинающих 1С-программистов. Онлайн-интенсив со 2 июня по 2 июля 2020 г. Промо

Практика программирования v8 Платные (руб)

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500 руб.

02.03.2020    10614    17    4    

Организация дополнительного доступа к документам и справочникам (для 1С: Бухгалтерии предприятия 3.0)

Роли и права v8 v8::Права БП3.0 Россия БУ Платные (руб)

Расширение для дополнительного доступа к документам пользователей (доступ только авторам документов) и справочникам.

3000 руб.

19.12.2019    1999    2    0    

Система принудительной блокировки пользователей по заданным условиям (для платформ 8.3.6+, для ЛЮБЫХ баз)

Роли и права v8 1cv8.cf Платные (руб)

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

6990 руб.

29.11.2019    2827    0    0    

Приватный блокчейн и 1С популярно

Практика программирования Блокчейн Бесплатно (free)

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

02.09.2019    4858    0    mkalimulin    140    

Новые роли. Кладовщик, кассир и менеджер по закупкам [Расширение] Промо

Роли и права v8 v8::Права БП3.0 Россия Платные (руб)

Ваш кладовщик видит зарплату директора? Кассир копается в продажных документах? Менеджер по закупкам видит ваши расходы? Хватит закрывать на это глаза! Добавьте новые роли для пользователей. Три новых профиля - Кладовщик, кассир и менеджер по закупкам.

5000 руб.

01.11.2016    41167    48    45    

Установка запретов пользователям на запись для регистров сведений, справочников, документов

Информационная безопасность v8 v8::Права ERP2 УТ11 КА2 Платные (руб)

Если нужно быстро запретить запись любого справочника,документа любого типа, или регистра сведений. Не требует перезагрузки. Не затрагивает встроенные роли и систему прав, а так же существующие модули и объекты метаданных. Конфигурация Комплексная 2.4, так же для остальных конфигураций подойдет с небольшим изменением,стоимость внедрения для вашей конфигурации указана ниже, по вопросам в комментарии или л.с..

1000 руб.

30.05.2019    3000    0    0    

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

Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки v8 1cv8.cf Платные (руб)

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

2000 руб.

31.01.2019    43082    314    150    

Организация доступа к рабочим местам

Информационная безопасность v8::Права ДО БП3.0 Платные (руб)

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

5000 руб.

28.01.2019    4643    0    4    

[Расширение] КоДан: Контроль ввода данных и доступа к данным [БП, УТ, ЗУП, УНФ, ERP] Промо

Роли и права v8 v8::Права Розница УНФ ERP2 БП3.0 УТ11 КА2 ЗУП3.x Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять любые проверки при вводе данных, а также скрывать от пользователя недоступные ему данные. Возможна настройка фильтров на вводимые данные с использованием СКД и выполнение произвольных действий над данными. Не требует снятия конфигурации с поддержки, может использоваться с любой конфигурацией на платформе 8.3.6 или выше.

3000 руб.

23.05.2015    103461    236    244    

Бухгалтерия 3.0. Открытие проведенных документов только на чтение

Обработка документов Роли и права v8::БУ БП3.0 Россия БУ Платные (руб)

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

1000 руб.

06.11.2018    5596    2    14    

Контроль над паролями пользователей для ЛЮБОЙ типовой конфигурации, работающей на платформе 8.3 и выше ( + Расширение)

Пароли v8 v8::Права 1cv8.cf Платные (руб)

Данная подсистема создана для обеспечения информационной безопасности при работе множества пользователей, когда не исключена утечка паролей между сотрудниками. Это позволит уменьшить количество «темных делишек» в пределах организации. Система проста в настройке и обслуживании. Имеет гибкие настройки и отборы по реквизитам справочника "Пользователи". Оперирует уникальными идентификаторами пользователей и хранит хеш-суммы паролей, для слежения за уникальностью ввода новых. Имеется подробная справка по внедрению и настройке данной системы, которую можно скачать в данной публикации. Так же имеется расширение, которое очень просто подключается к типовым конфигурациям и прекрасно работает с ними!

1490 руб.

11.06.2018    11061    0    0    

Как нам защитить журнал

Информационная безопасность Журнал регистрации v8 1cv8.cf Абонемент ($m)

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

1 стартмани

23.01.2018    10565    7    mkalimulin    51    

Запросы 1С OnLine. Интерактивная обучающая программа. Промо

Практика программирования Решение задач на 1С:Специалист v8 1cv8.cf Платные (руб)

Интерактивное изучение языка запросов с самого начала: - 50 практических заданий с различным уровнем сложности; - Методические материалы по практике написания запросов; - Описание назначения таблиц и индексов 1С Предприятие 8; - Методика решения реальных задач запросом 1С; - Автоматическая система проверки решений с указанием ошибок; - Инструкции по решению задач с разъяснениями; - Техническая поддержка пользователей. Подходит для начинающих и действующих разработчиков 1С

1500 руб.

11.02.2014    57127    99    9    

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

Практика программирования v8 1cv8.cf Платные (руб)

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

2000 руб.

22.06.2016    23248    2    2    

Автоматическое заполнение настроек пользователя в зависимости от IP-адреса терминального клиента (RDP)

Информационная безопасность v8 КА1 УТ10 УПП1 Платные (руб)

При авторизации в сеансе 1С данное решение открывает возможность автоматически установить заранее определенные настройки (касса, склад, территориальное подразделение и.т.д) пользователю согласно IP-адресу RDP-клиента на основе Windows (терминальный клиент). Будет полезна предприятиям, где сотрудникам в зависимости от графика или периодически приходится работать в нескольких филиалах. А также для заведения новых пользователей - позволит не заполнять каждый раз заново многочисленные настройки. Решение предназначено для предприятий с филиальной сетью для работы в 1С через терминальные клиенты Windows в локальной и корпоративных VPN сетях.

1000 руб.

30.03.2016    11655    0    1    

1С:Обновление информационных баз в пакетном режиме

Информационная безопасность Архивирование (backup) Администрирование данных 1С v8 Платные (руб)

Позволяет автоматически обновлять любое количество информационных баз (ИБ) на платформах «1С:Предприятие 8.2» и «1С:Предприятие 8.3» и решать задачи по их администрированию.

14700 руб.

01.03.2016    19895    0    8    

Отчет по системе прав доступа Промо

Информационная безопасность v8 v8::Права 1cv8.cf Платные (руб)

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

1000 руб.

03.06.2012    54461    59    67    

Подсистема "Планировщик" (версия 2.2)

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

Конфигурация с подсистемой "Планировщик" (интерфейс + хранение + интеграция с Google). Версия 1.1 бесплатная и не обновляется. Версия 2.2+ коммерческая, содержит очень много полезного и полностью готова для использования и удобной интеграции в любую конфигурацию на платформе 8.3.12+ с БСП 3.0+

25000 руб.

02.03.2015    62138    321    62    

Анализ ролей и прав доступа

Информационная безопасность v8 1cv8.cf Платные (руб)

Отчет для анализа ролей и прав с использованием СКД. Формируется в разрезе объектов, ролей, пользователей и прав (чтение, просмотр и т.д.). Позволяет быстро узнать, какие пользователи или роли имеют конкретные права на объекты.

1000 руб.

09.01.2015    31327    14    8    

Консоль СКД - программа интерактивного изучения Системы компоновки данных

Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы v8::СКД 1cv8.cf Платные (руб)

Изучение системы компоновки данных с самого начала: - Практические задания с различным уровнем сложности; - Методические материалы по работе с СКД; - Описание конструктора схем компоновки данных; - Методика решения реальных задач создания отчетов в 1С; - Автоматическая система проверки решений; - Инструкции по решению задач с разъяснениями; - Техническая поддержка пользователей. Подходит для начинающих и действующих разработчиков и консультантов 1С

1500 руб.

30.11.2014    48897    71    0    

Оптимизация запросов 1С - от теории к практике Промо

Производительность и оптимизация (HighLoad) Практика программирования Математика и алгоритмы v8 1cv8.cf Платные (руб)

Желаете повысить свой уровень разработки? Не знаете, как оптимизировать работу тяжелых запросов 1С? Или знаете методы оптимизации, но на практике не получаете результат? Тогда эта интерактивная обучающая программа для Вас! Оптимизация запросов прямо в программе 1С:Предприятие 8. Несколько десятков практических заданий, рассматривающих методы оптимизации на практике. От Вас требуются реальные решения - оптимизация представленных запросов. Автоматизированная система оценит Ваш запрос и представит результат проверки.

1500 руб.

06.07.2015    55116    77    4    

Подсистема контроля доступа к элементам форм, привязка набора прав к должности. для обычного приложения. 1с 8.2.

Информационная безопасность v8 Платные (руб)

Подсистема выполняет две задачи 1. позволяет назначать роли пользователям иcходя из установленной пользователю должности. 2. позволяет назначать доступность и видимость реквизитов форм в том числе страниц панелей и колонок табличный частей иcходя из должности.

2000 руб.

12.07.2013    22422    4    2    

Отчет по правам пользователя

Информационная безопасность v8 1cv8.cf Россия Платные (руб)

Выводит подробный набор прав выбранного пользователя

1000 руб.

01.07.2013    11056    0    6    

Система внедрения и управления доступом в «1С:Предприятие»

Информационная безопасность Администрирование данных 1С v8 Платные (руб)

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

35000 руб.

11.04.2013    26896    0    8    

Отчет по системе прав доступа для БСП Промо

Роли и права БСП (Библиотека стандартных подсистем) v8 v8::УФ v8::Права 1cv8.cf Платные (руб)

Получение необходимой информации по правам доступа в разрезе групп доступа, профилей групп доступа, пользователей / групп пользователей, объектов конфигурации и ролей. Легко можно настроить состав и порядок вывода информации по правам, настроить необходимые фильтры и получить более детальную расшифровку по группировкам отчета.

1000 руб.

16.11.2015    31333    42    30    

Помощник разработчика внешних отчетов и обработок

Инструментарий разработчика Практика программирования v8 1cv8.cf Платные (руб)

Программный продукт создан на основе опыта работы с разнообразными видами внешних отчетов и обработок в управляемом приложении «1С:Предприятия 8.2» и предназначен для автоматизации их разработки.

5000 руб.

22.02.2013    16570    1    9    

Расширенная работа с графическими схемами. Построение схемы БП с помощью графической схемы. Переработка под 8.3 (8.2 и 8.1 так же поддерживается)

Практика программирования v8 Россия Платные (руб)

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

5000 руб.

16.08.2012    33301    10    40    

Права доступа к объектам

Информационная безопасность v8 1cv8.cf Платные (руб)

Права доступа 1С Механизм разрабатывался для быстрого изменения прав пользователей в решениях 1С Предприятие. Данную разработку возможно интегрировать в любую конфигурацию “1С Предприятие 8″. Этим 1С решением сможет управлять пользователь любого уровня знания системы 1С. Для работоспособности прав, после настройки, НЕ нужен перезапуск “1С предприятия”. В функционал “Права доступа” входят такие возможности: С помощью данного механизма возможно регулировать видимость, доступность реквизита или самой формы справочника или документа. С помощью данного механизма возможно универсально настраивать отображение данных в форме списка любого справочника или документа.

3000 руб.

26.05.2012    61200    25    120    

[Расширение] УНФ. Ограничения прав пользователей Промо

Ценообразование, анализ цен Роли и права v8 v8::Права УНФ Россия УУ Платные (руб)

Расширение возможностей программы УНФ. В первую очередь это разграничение всевозможных прав пользователей и контроль при совершении различных действий. Например: ограничения на создание либо редактирование объектов, возможность задавать минимальный вид цен продажи, запрет продажи на группы номенклатуры и по признаку эквайринга, теги доступных пользователю контрагентов, доступные кассы, ограничение повторного входа пользователя, контроль суммы задолженности, запрет печати непроведённых документов, доступ к отчетам и т.д..

1000 руб.

23.02.2018    17700    32    9    

Adaptersoft : HelpDesk Corp - автоматизация сопровождения 1С

Информационная безопасность Администрирование данных 1С v8 Россия Платные (руб)

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

25000 руб.

28.07.2010    84384    14    85    

Мотива: Генератор названий

Практика программирования v8 1cv8.cf Россия Платные (руб)

Удобный и продуманный инструмент для генерации слов по заданному шаблону

3000 руб.

22.12.2009    13273    0    9    

Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо

Практика программирования v8 1cv8.cf Платные (руб)

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

10.12.2019    14967    53    infostart    6    

Анализ прав доступа БСП 2+ Промо

БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права v8::СКД 1cv8.cf Платные (руб)

Универсальный инструмент анализа прав доступа пользователей 1C в различных разрезах. Отчет позволяет удобно анализировать права пользователей, роли, профили и доступ к объектам метаданных 1С. Удобное представление прав пользователей помогает провести настройку ролей и доступа системы 1С. Отчет работает на конфигурациях с БСП версий 2.0 и выше.

2000 руб.

14.02.2019    10510    27    2    

Управление рабочими группами для 1С:Документооборота Промо

Информационная безопасность Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО УУ Платные (руб)

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

1000 руб.

23.10.2015    36530    64    18    

"2iS:Пользователи" - Центр управления доступом пользователей к базам 1С Промо

Информационная безопасность Администрирование данных 1С v8 Платные (руб)

Конфигурация позволяет из одной точки управлять доступом пользователей ко всем базам 1С. Добавлять новых пользователей, отключать уволенных сотрудников, переназначать роли и профили (наборы ролей), импортировать настройки из конфигураций, инфобаз и Active Directory, выполнять автоматически в инфобазах любые дополнительные настройки после добавления \ обновления каждого пользователя.

20000 руб.

01.06.2017    23693    7    4    

Шаблоны наименований Номенклатуры и Характеристик номенклатуры для конфигураций 1С:УПП или 1С:КА Промо

Информационная безопасность Обработка справочников v8 КА1 УПП1 Платные (руб)

Дополнение к конфигурации "Управление производственным предприятием" или "Комплексная автоматизация". Поставляется в открытом коде в виде cf файла (только сами оригинальные доработки, коды типовых конфигураций 1С (УПП или КА) в поставку не входят). Позволяет: 1. Создавать шаблоны для Номенклатуры, используя в полях шаблона свойства номенклатуры, реквизиты справочника номенклатура, пробелы и символы; 2. Создавать шаблоны для Характеристик номенклатуры, используя в полях шаблона свойства характеристик номенклатуры, реквизиты справочника Характеристики номенклатуры, пробелы и символы; 3. Быстро создавать новые записи номенклатура с автоматически формирующимися наименованиями в зависимости от заданных пользователем значений свойств и реквизитов номенклатуры (для характеристик номенклатуры аналогично) 4. Автоматически при создании заполнять значения свойств и реквизитов значениями из шаблона (и для характеристик номенклатуры аналогично). 5. Разделить права доступа пользователей к справочнику номенклатура в зависимости от наличия специальных ролей. 6. Специальной обработкой "привязывать" (или "отвязывать") к выбранному шаблону элементы справочника Номенклатура.

14999 руб.

20.05.2015    33869    10    2