Программное формирование картинки в 1С:Предприятие 8.3.9 (ПотокВПамяти / ЗаписьДанных)

Публикация № 1061803 16.05.19

Разработка - Универсальные функции

картинка bmp программно

В статье представлен код программного формирования картинки (двоичные данные) без всяких внешних компонент, без формирования строки Base64, используя лишь встроенные механизмы 1С предприятие 8.3.9 (объекты ПотокВПамяти и ЗаписьДанных). Сам по себе код формирования картинки не несёт ничего нового. Всё описано в википедии. Захотелось попробовать новые методы, но никак не доходитили руки. В приложении обработка практически с этим же кодом.

Приступим к делу.

Будем формировать картинку в два этапа:
1. Сначала подготовим данные картинки, т.н. RGB матрицу. Именно здесь мы рисуем нашу будущую картинку путём определения цвета каждого пикселя. Т.е., если нужно нарисовать что-то своё, то меняем код именно здесь. 
2. А потом по этим данным уже сформируем двоичные данные.
Листинг функций представлен ниже. Плюс небольшие замечания.

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

Итак, к делу:

Сначала вспомогательная функция формирования матрицы цветов пикселей. Собственно здесь мы описываем цвет каждого пикселя по его координатам.
Создаём двумерный массив высотой и шириной в пикселях с нашу картинку. Элементы массива - структура с RGB компонентами цвета. Не самый лучший вариант в плане производительности, но самый наглядный из тех, что я смог придумать.

&НаСервереБезКонтекста
Функция МатрицаЦветовRGB(Высота, Ширина)
	
	// Устанавливаем размеры матрицы по которой сформируется картинка
	ТекМатрицаЦветовRGB = Новый Массив(Высота, Ширина);
	
	Для Индекс1 = 1 По Высота Цикл
		Для Индекс2 = 1 По Ширина Цикл
			
			// Далее идёт установка цвета пикселя в зависимости от координат.
			// Именно этот код предполагается модифицировать
			#Область Определение_цвета_пикселя

			Если ((Cos(Индекс2/Ширина*5*3.14)/2+0.5)*0.6 + 0.4)*Высота > Индекс1 Тогда
				ТекКрасный 	= Цел(255*Индекс1/Высота);
				ТекЗеленый 	= 50;
				ТекСиний 	= 50;
			Иначе
				ТекКрасный = 255;
				ТекЗеленый = 255; 
				ТекСиний = 255; 
			КонецЕсли;			
					
			#КонецОбласти
			
			ТекМатрицаЦветовRGB[Индекс1-1][Индекс2-1] = Новый Цвет(ТекКрасный, ТекЗеленый, ТекСиний);
			
		КонецЦикла;
	КонецЦикла;	
	
	Возврат ТекМатрицаЦветовRGB
	
КонецФункции

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

&НаСервереБезКонтекста
Функция СоздатьКартинку(МатрицаЦветовRGB)
	
	Высота = МатрицаЦветовRGB.Количество();
	Ширина = МатрицаЦветовRGB[0].Количество();
	
	// Для простоты формирования возьемём 24 бита. По 8 бит на каждый канал. Альфаканал не используем. 
	ТекГлубинаЦвета = 3; // Измеряется в байтах. 	
	
	// Каждая строка должна содержать количество байтов кратное 4.
	БайтовДополнение = (4-ТекГлубинаЦвета*Ширина%4)%4; 
	
	РазмерФайла = ТекГлубинаЦвета*Ширина*Высота + Высота*БайтовДополнение;	
	
	///////////////////////////////////////////////////////////////////////////////
		
	ПотокТело = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(ПотокТело);
		
	//BITMAPFILEHEADER
	
	//bfType 
	ЗаписьДанных.ЗаписатьЦелое16(16973, ПорядокБайтов.BigEndian); // 0x424D big-endian = 0x4D42 little-endian. Признак формата. Всегда это значение.
	//bfSize
	ЗаписьДанных.ЗаписатьЦелое32(54 + РазмерФайла);
	//bfReserved1
	ЗаписьДанных.ЗаписатьЦелое16(0);	
	//bfReserved2
	ЗаписьДанных.ЗаписатьЦелое16(0);	
	//bfOffBits
	ЗаписьДанных.ЗаписатьЦелое32(54);
	
	//BITMAPINFOHEADER // версия 3
	// biSize
	ЗаписьДанных.ЗаписатьЦелое32(40); 
	// biWidth
	ЗаписьДанных.ЗаписатьЦелое32(Ширина);			// ширина изображения в пикселах 
	// biHeight
	ЗаписьДанных.ЗаписатьЦелое32(Высота);			// высота изображения в пикселах
	// biPlanes
	ЗаписьДанных.ЗаписатьЦелое16(1);				// содержит единицу
	// biBitCount
	ЗаписьДанных.ЗаписатьЦелое16(ТекГлубинаЦвета*8);	// количество бит на пиксел 
	// biCompression
	ЗаписьДанных.ЗаписатьЦелое32(0);				// тип сжатия 
	// biSizeImage
	ЗаписьДанных.ЗаписатьЦелое32(РазмерФайла);		// размер изображения в байтах
	// biXPelsPerMeter
	ЗаписьДанных.ЗаписатьЦелое32(0);				// горизонтальное разрешение в пикселах на метр 
	// biYPelsPerMeter
	ЗаписьДанных.ЗаписатьЦелое32(0); 				// вертикальное разрешение в пикселах на метр 
	// biClrUsed
	ЗаписьДанных.ЗаписатьЦелое32(0);				//  количество используемых цветовых индексов в палитре 
	// biClrImportant
	ЗаписьДанных.ЗаписатьЦелое32(0);				// количество индексов
	
	///////////////////////////////////////////////////////////////////////////////
		
	Для Выс = 1 По Высота Цикл	// строки снизу вверх		
			
		Для Шир = 1 По Ширина Цикл
			
			ЦветаПикселя = МатрицаЦветовRGB[Выс-1][Шир-1];
			ЗаписьДанных.ЗаписатьБайт(ЦветаПикселя.Синий);
			ЗаписьДанных.ЗаписатьБайт(ЦветаПикселя.Зеленый);
			ЗаписьДанных.ЗаписатьБайт(ЦветаПикселя.Красный);
						
		КонецЦикла;
		
		// Забиваем нулями остаток строки. Так как размер строки должен быть кратен 4 байтам.
		Для Доп = 1 По БайтовДополнение Цикл		
			ЗаписьДанных.ЗаписатьБайт(0); 
		КонецЦикла;
		
	КонецЦикла;
		
	ЗаписьДанных.Закрыть();
	
	ДвоичныеДанныеТело = ПотокТело.ЗакрытьИПолучитьДвоичныеДанные();
	
	Возврат ДвоичныеДанныеТело;
		
КонецФункции

 

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

ТекМатрицаЦветовRGB = МатрицаЦветовRGB(ВысотаКартинок, 200);
ТекКартинкаДвоичныеДанные = СоздатьКартинку(ТекМатрицаЦветовRGB);

ТекКартинка = Новый Картинка(ТекКартинкаДвоичныеДанные);
ТекКартинкаПНГ = ТекКартинка.Преобразовать(ФорматКартинки.PNG);

Здесь же на инфостарте был найден способ отображения картинок в табичной части / динамическом списке используя навигационные ссылки. Статью к сожалению, найти не могу. В кратце:
Создаём справочник КартинкиДляТаблицы с двумя реквизитами:
1. ДанныеКартинки - Тип: ХранилищеЗначения
2. АдресКартинки - Тип: Строка(0)

Формируем картинку, и записываем в элемент справочника:

 

// Создаём картинку
ТекКартинкаДвоичныеДанные = СоздатьКартинку(ТекМатрицаЦветовRGB);
ТекКартинка = Новый Картинка(ТекКартинкаДвоичныеДанные);

// Преобразуем в PNG
ТекКартинкаПНГ = ТекКартинка.Преобразовать(ФорматКартинки.PNG);	

// Создаём элемент справочника
НовЭлемент = Справочники.КартинкиДляТаблицы.СоздатьЭлемент();

// Прописываем наименование, если нужно
НовЭлемент.Наименование = "График1";

// Присваиваем данные картинки. Формат PNG уже сжат, поэтому тратить ресурсы на излишнее сжатие не будем.
НовЭлемент.ДанныеКартинки = Новый ХранилищеЗначения(ТекКартинкаПНГ, Новый СжатиеДанных(0));

// Записываем, так как для ПолучитьНавигационнуюСсылку нужна ссылка.
НовЭлемент.Записать();

// Получаем навигационную ссылку на реквзит "ДанныеКартинки" у данного элемента справочника
// и записываем полученное значение
НовЭлемент.АдресКартинки = ПолучитьНавигационнуюСсылку(НовЭлемент.Ссылка, "ДанныеКартинки");

// После чего сохраняем элемент справочника
НовЭлемент.Записать(); 

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

Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|	КартинкиДляТаблицы.Ссылка КАК Ссылка,
|	КартинкиДляТаблицы.АдресКартинки КАК АдресКартинки
|ИЗ
|	Справочник.КартинкиДляТаблицы КАК КартинкиДляТаблицы";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
	НовСтрока = Таблица.Добавить();
	НовСтрока.Картинка = Выборка.АдресКартинки;
	НовСтрока.Справочник = Выборка.Ссылка;
КонецЦикла;

Вуаля:

 

В файлах:
1. обработка с этим кодом
2. выгрузка конфигурации с этим справочником картинок и обработкой.

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

Наименование Файл Версия Размер
Формирование картинки.epf

.epf 9,37Kb
9
.epf 9,37Kb 9 Скачать
СправочникДляКартинок_ФормированиеКартинок.cf

.cf 19,16Kb
6
.cf 19,16Kb 6 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Serj1C 480 17.05.19 11:39 Сейчас в теме
Круто!
Тоже с 2013 года хочу свою обработку адаптировать под новые возможности 8.3
https://infostart.ru/public/77713/

Как долго генерируется картинка?
2. yku 367 17.05.19 12:56 Сейчас в теме
(1) Пример из статьи: 25*200 пикселей. Рисунок тоже из статьи - герерируется за 0.17-0.20 сек в среднем.

Я твою кстати скачивал. И возможно часть кода из неё почерпнул.
Тоже хочу сделать команды для рисования.
5. KAV2 151 17.05.19 18:02 Сейчас в теме
(2) И создать обертку над ними в JS Canvas )).
3. Darklight 30 17.05.19 15:25 Сейчас в теме
Волны в примере бегут? Если нет динамики - то это не так интересно
6. yku 367 17.05.19 18:48 Сейчас в теме
(3) конечно бегут. Это же bmp. И статья так и называется: "создаём анимацию" нет.
user1870444; mrChOP93; pavlov_dv; SlavaKron; oleg-m; tsmult; CyberCerber; Itilive.ru; +8 Ответить
4. Поручик 4635 17.05.19 15:35 Сейчас в теме
7. Жолтокнижниг 255 09.06.19 23:54 Сейчас в теме
Есть еще вариант формирования картинок - SVG, поддержка с 8.3.?

Увы 1с не умеет SVG анимацию.
8. frkbvfnjh 728 06.01.21 09:44 Сейчас в теме
Всё описано в википедии

Можете ссылку дать?
10. frkbvfnjh 728 08.01.21 11:54 Сейчас в теме
11. insurgut 205 02.02.21 06:46 Сейчас в теме
Первое, что вижу - генерация штрихкодов без компонент :)
Оставьте свое сообщение

См. также

Форма выбора из списка с оглавлением

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

11.11.2022    4786    3    Yashazz    0    

20

Как передать Таблицу Значений в Динамический Список?

Механизмы платформы 1С Универсальные функции Платформа 1С v8.3 Абонемент ($m)

До версии 8.3.9 ответ однозначен - никак. Потом были добавлены временные таблицы для динамических списков, но официальный ответ остался неизменным - никак. Ну а если очень надо?

1 стартмани

17.10.2022    4527    Dementor    9    

23

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

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

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    11734    85    sapervodichka    92    

114

Программеры, упрощаем себе трудовые будни!

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

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

1 стартмани

08.08.2022    4516    10    Baryshev    17    

17

Если хочется функционального программирования с функциями высшего порядка и map, filter, reduce

Математика и алгоритмы Универсальные функции Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

07.07.2022    2576    Alxby    42    

19

Подсистема регулярных заданий

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

23.05.2022    5274    15    Sirruf    15    

14

Функции для обработки произвольной таблицы значений

Универсальные функции Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

04.04.2022    4632    13    sanek_tgu    0    

13

Добавление электронной подписи в документ PDF

Универсальные функции Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

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

1 стартмани

26.08.2021    15753    37    fotov    19    

41

Работа с абстрактным массивом

Математика и алгоритмы Универсальные функции Платформа 1С v8.3 Россия Абонемент ($m)

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

1 стартмани

07.07.2021    6680    kalyaka    57    

31

Модель запроса

Универсальные функции Платформа 1С v8.3 Запросы Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

01.03.2021    5186    kalyaka    26    

47

Поиск корректной кодировки текста

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для поиска корректной кодировки текста.

1 стартмани

12.10.2020    6976    12    Jokemas    7    

17

Парсинг Excel-файла

Загрузка и выгрузка в Excel Универсальные функции Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

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

1 стартмани

15.09.2020    16770    42    LamerSoft    0    

26

Таблица значений в табличный документ (СКД)

Универсальные функции Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

12.08.2020    34848    13    markivkin    5    

12

Нормализация адреса с помощью API Почты России

WEB-интеграция Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Почта России предоставляет доступ к сервису нормализации адресов по API. Данная обработка, используя сервис Почты России, демонстрирует возможность нормализации адреса из произвольной строки. Предназначена в большей степени для программистов, т.к. не связана ни с какой конфигурацией.

2 стартмани

11.08.2020    11115    20    Cerberdm    7    

21

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

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Решаем следующую задачу. Например, в справочнике «Номенклатура» — 10 дополнительных реквизитов: "Материал", "Наименование на английском", "Наименование на французском" и т.д., и 20 дополнительных реквизитов в справочнике «Характеристики номенклатуры». Необходимо вывести все характеристики по ТЧ "Товары", так называемую «Спецификацию» по «Заказу клиента» или «Заказу поставщика».

2 стартмани

05.05.2020    12358    14    papche    8    

15

Универсальное хранилище настроек

Универсальные функции Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

10.03.2020    13357    1    v.krivenko    17    

15

Дополнительные функции для 1С:Документооборот

Универсальные функции Платформа 1С v8.3 1С:Документооборот Управленческий учет Абонемент ($m)

В данной публикации я хочу поделиться расширением, которое содержит дополнительные функции (доработки) для 1С:Документооборот.

1 стартмани

24.01.2020    29947    214    pavelpribytkin96    47    

56

Универсальные функции: разложение произвольной строки адреса в структуру

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Процедуры и функции раскладывают произвольную строку адрес в структуру по ключевым словам.

1 стартмани

30.12.2019    8000    vik070777    12    

18

Подпись PDF в новой версии 8.3.16

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Проверяем новую возможность платформы 1С:Предприятие 8 по формированию подписей в PDF.

1 стартмани

23.12.2019    17435    53    kolya_tlt    15    

26

html + css + js в поле HTML документа 1С на примере решения задачи ханойских башен

Универсальные функции Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Рассматривается пример использования html + css + js в полеHTMLдокумента 1с. Вызов функций javascript со стороны 1С с передачей параметров. Решение головоломки "Ханойская башня" с визуализацией в среде 1С.

1 стартмани

11.11.2019    16339    12    mangushov    0    

27

Простой способ загрузить файл Excel на тонком клиенте.

Загрузка и выгрузка в Excel Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Самый простой способ загрузить файл Excel на тонком клиенте - это скопировать лист Excel в "табличный документ" на форме обработки и обрабатывать уже поля "табличного документа".

1 стартмани

30.10.2019    18219    8    John_d    16    

17

Картинка вместо кнопки без html

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Вариант замены стандартных кнопок на форме для тех, кого не устраивают кнопки 1С и нет особых возможностей делать все с использованием html. Тестировал работу на платформах 8.3.10, 8.3.13, 8.3.14

1 стартмани

23.10.2019    15250    16    papa_harlo    6    

17

Выгрузка данных из дерева значений 1С в формат JSON иерархический список (Сериализация ДереваЗначений в JSON)

Универсальные функции Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Тема: Иерархические списки при обмене данными. В интернете не удалось найти подобного решения. Обнаружена реализация только обратной операции JSON в дерево значений 1С или рассматриваются линейные списки (таблицы).

1 стартмани

22.10.2019    18197    32    mwoleg    9    

13

Вывод QR-кода типовыми средствами.

Сканер штрих-кода Универсальные функции Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Абонемент ($m)

Вывод QR-кода типовыми средствами. На данный момент очень часто нужно вывести в печатную форму QR-код. Показываю как на примере типового кода из УТ11 это сделать. Можно использовать в любых конфигурациях с обычными формами.

1 стартмани

21.10.2019    66204    137    Емельянов Алексей    57    

51

Генерация QR кода для любых конфигураций 1С (обычные и управляемые формы)

Универсальные обработки Универсальные функции Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Для генерации используется компонента типовой конфигурации УТ11, встроенная в общий макет "КомпонентаПечатиQRКода". Ниже приведены процедуры, чтобы сделать обработку самостоятельно (только для УФ).

1 стартмани

11.10.2019    48013    243    dm1try    0    

30

Полное копирование одной формы в другую

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Однажды я столкнулся с необходимостью открыть форму ЛЮБОГО документа с определенными изменениями, не зависящими от структуры объекта (например, заблокировать все кнопки). В интернете решения я не нашел. Обычно на форумах на запросы подобного рода отвечают чем-то вроде "покажи первоначальную задачу, а не спрашивай как реализовать то, что ты придумал". Тем не менее, мне стало интересно, как это можно сделать.

1 стартмани

03.10.2019    11841    nekit_rdx    26    

36

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

Универсальные функции Чистка данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

27.09.2019    26966    39    John_d    20    

11

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

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Как запустить фоновое задание из модуля внешней обработки используя БСП. Как отключить безопасный режим и сообщения защиты от опасных действий независимо от профиля безопасности пользователя в фоновом задании во внешней обработке.

2 стартмани

24.08.2019    24640    BenGunn    29    

132

10 способов получить модуль числа (а может, и больше)

Математика и алгоритмы Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пишем функцию вычисления модуля числа. Сколько способов существует? Давайте посчитаем!

1 стартмани

11.07.2019    26660    sam441    38    

56

Экспортные процедуры и функции общих модулей БП 3.0, ЗУП 3.1, УТ 11

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Таблицы экспортных процедур и функций общих модулей конфигураций БП КОРП 3.0, ЗУП КОРП 3.1, УТ 11 + обработка по формированию такой таблицы из любой конфигурации.

14.06.2019    19176    35    SanchoD    33    

42

Работа с графической схемой в объектной модели DOM

Универсальные функции Платформа 1С v8.3 Управляемые формы Абонемент ($m)

Пример кода для работы с графической схемой в объектной модели DOM, платформа 8.3.12.

1 стартмани

04.06.2019    8868    botokash    19    

51

Создание внешней печатной формы в формате документа Word

Адаптация типовых решений Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В статье написано, как создать внешнюю печатную форму (для конфигураций с БСП) в формате Word.

1 стартмани

17.05.2019    40404    ВикторП    28    

68

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом

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

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    40262    24    stvorl    1    

20

Пропорциональное распределение в запросе

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

28.06.2018    13551    invertex    8    

38

Даты пересечения двух периодов

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

01.03.2018    18115    1    yojeeg    0    

14

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула

Универсальные функции Адаптация типовых решений Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

1 стартмани

29.12.2017    64132    50    agent00mouse    0    

12

Количество рабочих и выходных дней в месяце с сайта its.1c.ru

Учет рабочего времени Универсальные функции Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Простенькая функция, которая обращается к сайту ИТС и возвращает оттуда сведения о количестве рабочих дней в указанном месяце. Платформа 8.3.10, УФ.

1 стартмани

22.11.2017    17811    1    simplysimply    5    

23

Выбор файла и загрузка его на сервер в асинхронном режиме

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

22.10.2017    46746    json    5    

51