Хранение файлов - как уменьшить размер базы данных

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

Администрирование - Администрирование данных 1С - Чистка базы

ХешФункция MD5 ХранилищеЗначения Файлы

Хранение файлов в базе 1С можно оптимизировать для уменьшения размера хранимых данных.

Очень часто, в базах 1С организуют хранилище файлов, что удобно. Например, удобно хранить переписку по электронной почте. И вот, представьте, вы берете к-нить картинку и отправляете 8 своим коллегам, с точки зрения обычного хранения данных, в вашей БД, сохранится 9 копий данной картинки, а если ваши коллеги начнут отвечать на письмо, то и больше.

Вот так это выглядит;одинаковые файлы, записываются несколько раз:

 

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

1С поддерживает следующие алгоритмы, но можно использовать и внешние вызовы, для получения ХЕШа:

  • CRC32 (CRC32)
  • MD5 (MD5)
  • SHA1 (SHA1)
  • SHA256 (SHA256)

Основная идея в том, что прежде чем записать в БД файл, проверить - существует ли точно такой же файл или нет? Если существует, то записывать его нет необходимости, и можно сохранить только необходимые реквизиты - имя файла, ссылка на объект и т.д.

Для ускорения перебора файлов, мы сначала ищем их по размеру (число) потом уже по ХЕШу. Для чего у нас есть регистр:

 

Если файл не найден, мы его записываем в хранилище значений, если найден, то записываем ссылку на него, уже в другом регистре:

 

 

Я провел эксперимент, взял БД с обычным хранением файлов и БД с переделанным под описанный выше алгоритм хранением. После чего, в 2 БД были загружены письма за 1 год. Результат - база данных стала более чем в 3 раза меньше:

 

 

Для "усиления" надежности, можно использовать несколько ХЕШ-функций. Падения быстродействия при загрузке почты, я не заметил.

Немного кода:

&НаСервере
Функция ПолучитьРазмерФайлаИХешМД5(_ХранилищеЗначения) Экспорт
	Структура = новый Структура;
	
	ДД = _ХранилищеЗначения.Получить();
	РазмерФайла = ДД.Размер();
	
	Хэш = Новый ХешированиеДанных(ХешФункция.MD5);
	Хэш.Добавить(ДД);
	МД5Двоичный = Хэш.ХешСумма;
	Результат = ПолучитьHexСтрокуИзДвоичныхДанных(МД5Двоичный); 
	ХешМД5 = Результат; 	

	Структура.Вставить("РазмерФайла",	РазмерФайла);
	Структура.Вставить("ХешМД5", 		ХешМД5);

	Возврат Структура;
КонецФункции

&НаСервере
Процедура ЗаполнитьВложения(_Файлы, ИмяВложения, ИнтернетПочтовоеСообщение, _Владелец) Экспорт
	
	Для Каждого ИнтернетПочтовоеВложение Из ИнтернетПочтовоеСообщение.Вложения Цикл
		
		ИмяВложения = ИнтернетПочтовоеВложение.Имя;
		
		Если ТипЗнч(ИнтернетПочтовоеВложение.Данные) = Тип("ДвоичныеДанные") Тогда
			
			СтруктураФайла = Новый Структура;
			 
			СтруктураФайла.Вставить("ИмяФайла",				ИмяВложения);
			СтруктураФайла.Вставить("Идентификатор",		ИнтернетПочтовоеВложение.Идентификатор);
			СтруктураФайла.Вставить("ПутьКФайлу",			"");
			СтруктураФайла.Вставить("ХранилищеЗначения"	,	Новый ХранилищеЗначения(ИнтернетПочтовоеВложение.Данные, Новый СжатиеДанных()));
			СтруктураФайла.Вставить("СпособКодирования",	Строка(ИнтернетПочтовоеВложение.СпособКодирования));
			СтруктураФайла.Вставить("ТипСодержимого",		ИнтернетПочтовоеВложение.ТипСодержимого);

			Файл = СоздатьФайл(_Владелец, СтруктураФайла);
			
			НовоеФайлы 			= _Файлы.Добавить();
			НовоеФайлы.Файл 	= Файл.Ссылка;
		Иначе
			ЗаполнитьВложения(_Файлы, ИмяВложения, ИнтернетПочтовоеВложение.Данные, _Владелец);
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

&НаСервере
Функция СоздатьФайл(_Владелец, _СтруктураФайла) Экспорт

	ИмяФайла			= _СтруктураФайла.ИмяФайла;	
	Идентификатор		= _СтруктураФайла.Идентификатор;
	ПутьКФайлу			= _СтруктураФайла.ПутьКФайлу;
	ХранилищеЗначения	= _СтруктураФайла.ХранилищеЗначения;
	СпособКодирования	= _СтруктураФайла.СпособКодирования;
	ТипСодержимого		= _СтруктураФайла.ТипСодержимого;

	СтруктураФайла		= ПолучитьРазмерФайлаИХешМД5(ХранилищеЗначения);	
	ФайлСсылка			= НайтиФайлПоРазмеруФайлаИХешуМД5(СтруктураФайла.РазмерФайла, СтруктураФайла.ХешМД5);	
	
	Если ФайлСсылка = неопределено Тогда 
		
		Файл = Справочники.Файлы.СоздатьЭлемент();	
		Файл.Наименование			= ИмяФайла;
		Файл.ДанныеФайла 			= ХранилищеЗначения;
		
		Файл.Записать();
		
		ФайлСсылка = Файл.Ссылка;
	КонецЕсли;
	
	Регистр = РегистрыСведений.Регистр_ВладельцыФайлов.СоздатьНаборЗаписей();	
	Регистр.Отбор.Источник.Установить(ФайлСсылка);		
	Регистр.Отбор.ВладелецФайла.Установить(_Владелец);
	
	Регистр.Прочитать();
	
	Если Регистр.Количество() = 0 Тогда
		ЗаписьРегистра	= Регистр.Добавить();
		
		ЗаписьРегистра.Источник			= ФайлСсылка;
		ЗаписьРегистра.ВладелецФайла	= _Владелец;    

	ИначеЕсли Регистр.Количество() > 1 Тогда
		ВызватьИсключение "В регистре Регистр_ВладельцыФайлов для (" + Строка(ФайлСсылка) + ") найдено несколько одинаковых значений. Сообщите разработчику. Сделайте скриншот вводимых данных.";
	Иначе
		ЗаписьРегистра = Регистр[0];
	КонецЕсли;
	
	ЗаписьРегистра.ИмяФайла				= ИмяФайла;
	ЗаписьРегистра.Идентификатор		= Идентификатор;
	ЗаписьРегистра.ПутьКФайлу			= ПутьКФайлу;
	ЗаписьРегистра.СпособКодирования	= СпособКодирования;
	ЗаписьРегистра.ТипСодержимого		= ТипСодержимого;	
	
	Регистр.Записать();			
	
	Возврат ФайлСсылка; 
	
КонецФункции


 

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. stepan_s 11.09.19 03:48 Сейчас в теме
Такой подход допустим в случае хранения файлов в едином месте хранения (справочник, регистр сведений), но существуют реализации когда хранилище с файлом в документах, или прочих уникальных метаданных. Как быть в таком случае? Есть ли варианты?
И мягко сказать не мало работы для перевода логики хранения...
Ошибаюсь?
2. 2tvad 62 11.09.19 09:27 Сейчас в теме
(1) Думаю, не принципиально где вы храните файлы. Потому что, придется переделывать их отображение и получение на основании регистра (в моем случае Регистр_ВладельцыФайлов). Измерение Источник получит "Составной тип данных" на все возможные хранилища файлов (если нельзя сослаться прямо, то будут некие ключи для ссылок).

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

Я планирую переделывать такой механизм у одного своего Заказчика, по факту отпишусь что вышло по объему базы и сколько это заняло в чел.часах.
Fox-trot; stepan_s; +2 Ответить
3. МимохожийОднако 130 15.09.19 08:05 Сейчас в теме
В порядке бредовой идеи.
Добавить в типовой регистр с картинками реквизит ХэшМд5. Добавить регистр с измерением ХэшМд5 и хранилищем файла. При записи сначала сохранять в добавленный регистр ХэшМд5 и картинку (Хранилище значений), а после этого записывать ХэшМд5 в добавленный реквизит в типовом регистре.

Для тех записей типового регистра, в которых еще не заполнен добавленный реквизит запустить фоновое задание, которое перезаписывает типовой регистр с очисткой ранее записанных картинок из ресурса хранилища значений
Дмитрий74Чел; +1 Ответить
4. Diversus 2074 16.09.19 09:20 Сейчас в теме
(0) Что будет когда есть файл, который используется, например, в двух документах (файлы одинаковые) тех же электронные письма входящие и мы пометим на удаление одно из входящих писем и удалим?
Ваша доработка на это никак не отреагирует и будет удалено вложение, которое используется в другом документе.
Нужен дополнительный анализ удалять или не удалять файл-вложение иначе это может быть проблемой.
wowik; user1274438; +2 Ответить
5. 2tvad 62 16.09.19 09:31 Сейчас в теме
(4) Будет удалена запись в регистре "Регистр_ВладельцыФайлов".

Да вы правы, нужен дополнительный анализ при удалении. В случае если удалены все владельцы, то на файл отсутствуют ссылки и такие файлы нужно удалять, например регламентным заданием раз в сутки или когда удаляется последняя ссылка на файл.
6. Diversus 2074 16.09.19 09:38 Сейчас в теме
(5) Если мы говорим о стандартном функционале, то из справочника "ЭлектронноеПисьмоВходящееПрисоединенныеФайлы" файл будет удален при удалении объекта владельца подпиской на событие "ВыполнитьДействияПередУдалениемПрисоединенногоФайла". Так удалится сам файл.
Если я все правильно понял, вы создаете новый файл только тогда, когда нет уникальной записи с такой MD5, а если нашли,то просто указываете, что файл находится "вот здесь" остальные механизмы вы не трогали. Соответственно при удалении любого владельца файла стандартная БСП удалит исходный файл, а все остальные владельцы, которые ссылаются на этот же файл останутся без этого файла.
user1274438; +1 Ответить
7. 2tvad 62 16.09.19 09:52 Сейчас в теме
(6) Про стандартный функционал - вы абсолютно правы. Что БСП, что функционал 1С в прочих конфах заточен на работу со справочниками, где хранятся файлы. Все эти вызовы придется переделать на работу с регистром.
8. user1274438 16.09.19 10:49 Сейчас в теме
Все не читал. Штатную возможность хранения в томах уже предлагали?
9. 2tvad 62 16.09.19 11:21 Сейчас в теме
В описанной ситуации, если у вас в томах - 6,5 Гб файлов, будет 1,8 Гбайт.
10. user1274438 16.09.19 17:05 Сейчас в теме
(9) Дык, елы палы - даже 6.5 Гб, хранящихся в томах, уменьшают размер базы данных на 6.5 Гб

Что же касается нестыковок, типа (4) и (6) - то наложите на это еще, например, РИБ
Дальше даже думать не хочется, как можно потом разобраться - "куда потерялся мой файлик!!!!111". Особенно - если это не электропочта, а например, документооборот, а сами документы еще и электроподписями подписываются.
11. 2tvad 62 16.09.19 18:43 Сейчас в теме
(10) согласен. Но можно уменьшить 6,5 Гбайт в томах до 1,8 Гбайт. Что тоже хорошо с точки зрения скорости резервирования.
12. triviumfan 17 16.09.19 20:08 Сейчас в теме
Интересное решение, но нужно ли?!
13. Светлый ум 257 17.09.19 07:47 Сейчас в теме
14. azubar 37 30.09.19 13:29 Сейчас в теме
Как по мне, почту тянуть в 1С это зло, особенно учитывая реализацию почтового клиента 1С.
По поводу оптимизации хранения вложений также реализовал подобный механизм: отдельный справочник для хранения вложений, стандартный функционал работы был переписан так чтобы при изменении файлов система проверяла есть ли в хранилище файл с таким хешем, если нет то создавала, а в стандартном справочнике хранилась только ссылка на дополнительный справочник, при этом обновление / удаление файла не затрагивало сам файл и остальные элементы ссылающиеся на него. Регламентное задание периодически проверяло и очищало (архивировало) файлы на которые не ссылается ни один элемент из стандартного справочника. Такой подход очень сильно экономит пространство (независимо от варианта хранения в базе или в томах) и непонятно почему он до сих пор не реализован в типовых.
15. EVKash 7 30.09.19 14:25 Сейчас в теме
(14) в типовых и без этого косяков предостаточно...
в 1С руководствуются идеей, что компьютеры становятся все мощнее и надо всю эту мощь использовать. оптимизация? не... не слышали.
Дмитрий74Чел; +1 Ответить
16. 2tvad 62 30.09.19 17:01 Сейчас в теме
(15) Согласен. Стоит допилить, например, механизм регистров и не записывать физически данные, если нет в них изменений. Это сколько ресурсов сэкономит.
17. 2tvad 62 30.09.19 17:09 Сейчас в теме
(14) почту тянут для разных целей. Например, что бы переписка с заказчиком по контрактам была видна. Плюс это дисциплинирует продажников. Одно дело обсуждать в своей почте, другое, когда это видно сразу же нач.отдела. И не "Петров, а что у тебя там с контрактом", а "Петров, у тебя контракт подвис на согласовании сроков поставки, ты когда график вышлешь".

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

И с одной стороны база не раздувается, а с другой не нужно файлы отдельно постоянно бекапить, боясь потерять ссылки.
Оставьте свое сообщение

См. также

GGraphics - внешняя компонента для работы с картинками jpg (jpeg), png, bmp, gif, tif Промо

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

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

2000 руб.

02.09.2010    54353    62    207    

Интеграция "Библиотеки интеграции МДЛП 1.1.2.7" с типовой конфигурацией

Интеграция Конфигурирование 1С v8 Здравоохранение, медицина, стоматология Россия Бесплатно (free)

Инструкция для интеграции “Библиотеки интеграции МДЛП 1.1.2.7” в типовые конфигурации, на примере конфигурации “Управление нашей фирмой, редакция 1.6 (1.6.18.168)”.

02.03.2020    4380    0    RPGrigorev    3    

Универсальные инструменты 1С

Универсальные обработки Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

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

21.01.2020    21396    295    cprit    94    

Хранение файлов - как уменьшить размер базы данных

Чистка базы Производительность и оптимизация (HighLoad) Практика программирования Разработка v8 Россия Бесплатно (free)

Хранение файлов в базе 1С можно оптимизировать для уменьшения размера хранимых данных.

09.09.2019    7957    0    2tvad    17    

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

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

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

2000 руб.

31.01.2019    45719    327    156    

1С:Ассемблер. Немного летнего веселья!

Практика программирования Разработка v8 1cv8.cf Абонемент ($m)

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

1 стартмани

21.06.2019    26442    77    Evil Beaver    119    

Выполнение внешней обработки в фоновом задании

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

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    26564    0    Eret1k    23    

Немного о графических файлах. Сжатие. Распознавание текста

Инструментарий разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

06.05.2019    6720    10    tusv    6    

Регулярные выражения без внешних компонент? Легко! Промо

Практика программирования Обмен через XML v8 Бесплатно (free)

Сложный способ организовать проверку строки с помощью регулярного выражения в 1С. При этом ни одна внешняя компонента не пострадала. Ну и от платформы (Linux, MustDie) - не зависит.

04.03.2016    60335    0    starik-2005    99    

Практика перехода на Linux и Postgres в небольшой компании (10 пользователей)

Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

Почему я решил поставить давнему клиенту Linux + Postgres вместо Windows + MS SQL? Что меня останавливало раньше?

22.04.2019    27852    0    starik-2005    169    

HTML-клиент у конфигурации 1С

WEB v8 Бесплатно (free)

Приветствую. В этой публикации опишу свой опыт создания html-клиента для конфигурации 1С с помощью http-сервисов. HTML-клиент в этом случае - это frontend (html + css+ js), который генерирует и выдает пользователю конфигурация + backend, который тоже реализован в этой же конфигурации.

17.04.2019    16933    0    Smaylukk    119    

Уменьшаем трафик: HTTP запрос со сжатием GZIP средствами 1С. На примере выгрузки файлов на Яндекс-диск

WEB v8 1cv8.cf Абонемент ($m)

Обработка демонстрирует отправку тела HTTP запроса со сжатием gzip (метод deflate) средствами платформы 1С. Демонстрация происходит на примере отправки текста или файла на Яндекс.Диск.

1 стартмани

03.09.2018    5852    29    uno-c    0    

Инструменты бухгалтера: Виджеты рабочего стола Промо

Универсальные обработки Рабочее место v8 v8::БУ БП3.0 Абонемент ($m)

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

2 стартмани

28.08.2017    35390    170    Bazil    28    

Чтение сжатого gzip, deflate HTTP ответа сервера. Без ВК. Уменьши время загрузки и сократи трафик в 3 раза

WEB v8 1cv8.cf Абонемент ($m)

В платформе 1С:Предприятие не реализовано штатного механизма декодирования ответа веб серверов, в которых присутствует gzip сжатие. Некоторые использовали WinHttpRequest.5.1 , кто-то писал ВК. Друзья, хватит. Вот вам решение.

1 стартмани

08.06.2018    13654    69    Malfarion    16    

Создание подключаемой обработки табличной части с диалогом запроса параметров заполнения (управляемые формы)

Обработка документов Обработка справочников Практика программирования v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

03.05.2018    45013    116    Mirage78    16    

Обработка печатной формы WORD клиент-сервер УФ

Универсальные печатные формы v8::УФ 1cv8.cf Абонемент ($m)

Это моя первая статья на данном портале, но попытаюсь изложить все понятно и подробно. Долгое время у меня заняло создание такой вот внешней обработки. Есть очень много примеров, как сделать подобное на неуправляемых формах (2.0) и очень мало информации касательно управляемых(3.0), по крайней мере я многого найти не смог в доступе. Создание подобное обработки выглядит вполне несложно, если производить все действия на сервере, как это было с 2.0, но в нашем случае необходимо инициализировать открытие документа на клиенте, чему сильно мешает отсутствие возможности передать макет Active Document с сервера на клиент.

2 стартмани

14.03.2018    23819    83    LeoKeyn    41    

Gant 1C 2.* - диаграмма Ганта с таблицей + Планировщик + Отчет (8.1, на управляемой форме/Такси 8.2, 8.3) Промо

Рабочее место Универсальные обработки Управление проектом Финансовый учет и бюджетирование (FRP) Производство готовой продукции (работ, услуг) Учет рабочего времени Финансовый учет и бюджетирование (FRP) Производство готовой продукции (работ, услуг) Учет рабочего времени v8 1cv8.cf УУ Абонемент ($m)

Внешняя обработка, аналог MS Project в 1Се для работы с задачами: параллельный ввод данных по задачам и график Ганта, дополнительный режим в виде календаря (планировщик), связывание задач и пересчет длительности и дат с учетом выходных, видов связей и запаздываний, расчет затрат, сохранение/открытие проектов в файл на диск или файл ИБ, импорт/экспорт документов Microsoft Project.

1 стартмани

02.12.2011    136019    1068    rare-avis    210    

“Заставим сканер пищать!” или Получаем обратную связь из 1С при сканировании штрихкодов

Сканер штрих-кода Учет ТМЦ Учет ТМЦ v8 1cv8.cf Абонемент ($m)

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

1 стартмани

10.01.2018    40816    100    vadnevzorov    70    

1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена)

Перенос данных из 1C8 в 1C8 Практика программирования Обмен через XML v8 КД Бесплатно (free)

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

19.11.2017    182290    0    MaxS    285    

Зачем 1С-нику NoSQL и CRDT

WEB Интеграция Бесплатно (free)

В статье речь пойдет о современных инструментах для хранения, транспорта, обработки и обмена данными на примере популярной NoSQL-базы CouchDB.

12.08.2017    22767    0    unpete    27    

Маркировка: 2D Android Штрихкод сканер + драйвер устройства для 1С Промо

Сканер штрих-кода Розничная торговля Розничная торговля v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Драйвер торгового оборудования и приложение для Android, телефон или планшет в качестве стандартного штрихкод сканера для платформы 1С.

3 стартмани

29.11.2016    44090    176    dreamadv    110    

Как я стал одинэсником и переехал из провинции в Москву

О жизни Россия Бесплатно (free)

История покорения Москвы.

29.07.2017    16834    0    DmitryKSL    132    

54 ФЗ своими руками

ККМ Кассовые операции Розничная торговля Кассовые операции Розничная торговля v8 Розница Розничная и сетевая торговля (FMCG) Россия УУ Бесплатно (free)

Практический опыт внедрения изменений в 54ФЗ в розничной сети, работающей на 1С. Если вы не хотите платить каким-либо подрядчикам, которые "всё сделают и настроят за вас", то статься может оказаться крайне полезной.

17.04.2017    57632    0    comol    124    

Формирование штрихкода EAN-13 в SVG с помощью XDTO

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

В версии платформы 8.3.9 было объявлено о поддержке изображений в формате SVG. Данная обработка демонстрирует работу с данным форматом, а именно его формированием (рисованием). Ну а так как самой популярной картинкой в 1С, наверное, является картинка штрихкода EAN - ее я и решил рисовать.

1 стартмани

24.03.2017    11960    53    kot-stas    19    

Удаление организации из 1С. Чистка базы 1С. Удаление "не удаляемых" объектов Промо

Чистка базы v8 1cv8.cf Абонемент ($m)

Удалить все документы, чтобы в базе осталась только одна организация со своими документами? Удалить всю информацию в регистрах, не связанную с указанной фирмой? Удалить "неудаляемую" номенклатуру? Легко! Используйте эту обработку.

10 стартмани

02.10.2015    51120    309    spy-83    84    

План обмена в формате "EnterpriseData" для 1С 7.7

Обмен через XML 1С7.7<->1C7.7 v7.7 1С7:ТиС Абонемент ($m)

Пример организации надёжной синхронизации данных через универсальный формат "EnterpriseData" между конфигурациями на базе 1С 7.7 и произвольными приложениями.

1 стартмани

07.01.2017    21905    24    binex    23    

"Распределение в запросе" или "избавляемся от перебора"

Математика и алгоритмы Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

Хороший перебор - это отсутствие перебора. Рассмотрим пример замены полного перебора запросом.

16.12.2016    32799    0    alexandersh    48    

Разбираемся с механизмом Дополнительные отчеты и обработки в БСП

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Чуть более комплексное описание, чем на других ресурсах

1 стартмани

30.10.2016    140879    954    json    66    

Монитор журнала регистрации Промо

Журнал регистрации Администрирование данных 1С WEB v8 1cv8.cf Абонемент ($m)

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

2 стартмани

29.06.2015    39887    106    andy23    49    

Редактирование табличной части объекта с помощью СКД

Инструментарий разработчика Практика программирования v8::СКД 1cv8.cf Россия Абонемент ($m)

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

2 стартмани

16.09.2016    24497    96    Hatson    27    

Примеры скриптов на OneScript

OneScript Россия Абонемент ($m)

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

1 стартмани

14.07.2016    28603    41    Drak0n    43    

Набор данных Объект в СКД для решения задач сортировки, нумерации и вывода в отчет произвольных наборов данных

Практика программирования v8::СКД 1cv8.cf Бесплатно (free)

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

04.07.2016    44756    0    lopatin    12    

Опыт оптимизации и контроля производительности в БД с 3000 пользователей Промо

Производительность и оптимизация (HighLoad) Бесплатно (free)

Данная статья написана по материалам доклада, прочитанного на Конференции Инфостарта IE 2014 29-31 октября 2014 года. Меня зовут Сергей, являюсь руководителем отдела оптимизации и производительности систем в компании "Деловые линии". Цель этого доклада – поделиться информацией о нашем опыте работы с большой базой на платформе 1С, с чем пришлось столкнуться, как удалось обеспечить работоспособность. Уверен, что вам будет интересно, так как подобной информацией мало кто делится, да и про само существование таких систем их владельцы стараются не рассказывать, максимум про это «краем глаза» упоминают участвовавшие в проекте вендоры. **update от 04.03.2016 по вопросам из комментариев

05.08.2015    60367    0    Sergey.Noskov    119    

Учет путевых листов

Обработка документов Печатные формы документов Учет рабочего времени Учет ТМЦ Учет рабочего времени Учет ТМЦ v8 v8::УФ 1cv8.cf БУ УУ Абонемент ($m)

Внешняя обработка по учету путевых листов для управляемых форм. Позволяет сохранять во внешнем файле данные об автомобилях, водителях и путевых листах. Позволяет печатать формы №3 и №4-П. Позволяет вести учет задолженностей водителей за бензин и сравнивать расход по норме (по показаниям спидометра) и фактический расход бензина.

3 стартмани

27.06.2016    14128    79    DrugOn    10    

Google Analytics API, Oauth2.0 и 1c8

Практика программирования WEB v8 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

Обращение к Google Analytics API, Протокол Oauth 2.0 и запросы от 1С:8 без авторизации пользователя

02.05.2016    25627    0    Ольга_tmp    18    

УПД для документа "Поступление товаров и услуг" (БП 3.0) за поставщика

Печатные формы документов Оптовая торговля Производство готовой продукции (работ, услуг) Оптовая торговля Производство готовой продукции (работ, услуг) v8 v8::БУ БП3.0 Россия БУ Абонемент ($m)

Внешняя печатная форма для документа "Поступление товаров и услуг" позволяет печатать "Универсальный передаточный документ (УПД)" за поставщика в ред. постановления Правительства РФ 1137, 625 и 981

1 стартмани

20.12.2015    22004    273    romanco    18    

Автоматический REST-сервис в «1С:Предприятии». OData. Пример работы из Jscript/AJAX Промо

Практика программирования WEB v8 1cv8.cf Абонемент ($m)

Небольшой обзор REST-сервиса в «1С:Предприятии». Рассмотрен механизм работы c REST-сервером 1С:Предприятия из внешнего приложения - веб-страницы с использованием языка JavaScript и технологии AJAX.

1 стартмани

08.10.2014    76664    75    vano-ekt    48    

Автозаполнение адресов в 1С (API Google autocomplete place)

Практика программирования v8 1cv8.cf Бесплатно (free)

В данной статье вы увидите пример, как можно с помощью API Google autocomplete place делать подсказки при заполнении адреса

19.10.2015    12913    0    d.alexandr    26    

Использование встроенных отчетов для создания анализа корректности данных при исчислении НДС с авансов полученных

Бухгалтерский учет v8 БП2.0 Россия БУ НДС Бесплатно (free)

На Инфостарте много выложено внешних отчетов, направленных на контроль правильности исчисления НДС с авансов полученных. Хочу поделиться своим опытом использования встроенного отчета (для Бухгалтерия предприятия.Редакция 3.0) и порядка создания настроек отчета для процедур контроля за исчислением НДС с авансовых платежей покупателей, особенно в случаях применения различных налоговых ставок НДС

1 стартмани

22.07.2015    8781    0    lvk74    3    

Дополнительные отчеты и обработки для конфигураций, основанных на БСП. Часть 1. Заполнение объектов.

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

08.01.2015    35070    72    acrk    23    

Создание внешних печатных форм под управляемым приложением с нуля Промо

Печатные формы документов v8 v8::УФ 1cv8.cf Абонемент ($m)

Когда мне пришлось создавать внешние печатные формы под приложения на БСП ("1С: Бухгалтерия предприятия 3.0", "1С: Управление торговлей 11"), я обнаружил, что нет грамотных инструкций. Те, что имелись, использовали так называемые шаблоны: готовые обработки, в которых необходимо выполнять определенные корректировки. Но как создать сам шаблон, конкретных мануалов не было, справочную информацию я нашел на сайте ИТС и, обработав ее, написал статью, где подробно и понятно объясняются все этапы создания внешней печатной формы для управляемого приложения на примере конфигурации "1С: Бухгалтерия предприятия 3.0"

1 стартмани

05.06.2014    263808    391    signum2009    127    

Настройка ТСД chiperLab 8001 для УТ 11

Терминал сбора данных Учет ТМЦ Учет ТМЦ v8 УТ10 УУ Абонемент ($m)

Расширяем функционал ТСД chiperLab 8001 и загружаем сразу 10 документов Сканируйте 10 накладных за один раз!!!

1 стартмани

23.10.2014    24528    21    antonlinux    4    

Работа с принтером чеков Posiflex PP 6000, 7000, 8000

POS терминал Россия Абонемент ($m)

Некоторые варианты для работы с принтером чеков POSIFLEX AURA 6000, 7000, 8000.

1 стартмани

18.08.2014    64699    146    MrFlanker    24    

Подписываем файлы с помощью ЭЦП средствами 1с Промо

Универсальные обработки Защита и шифрование v8 1cv8.cf Абонемент ($m)

Обработка для подписи с помощью сертификата (ЭЦП) произвольных файлов, только средствами платформы 1с. Работает на всех конфигурациях, но только на последних платформах 8.2 и 8.3, где есть менеджер криптографии.

1 стартмани

05.09.2013    60640    255    anig99    25    

1С Бухгалтерия 8. Часть 1: Настройка параметров учета Промо

Управленческий учет (прочее) v8 БП2.0 Россия БУ Бесплатно (free)

Залогом правильного ведения бухгалтерского и налогового учета в программе 1С Бухгалтерия 8 является правильная настройка параметров учета и учетной политики. Разработчики 1С постарались, чтобы эти настройки были простыми и понятными. Тем не менее, есть ряд подводных камней, о которые могут спотыкаться даже опытные пользователи.

05.11.2011    223362    0    vdi1950    124