Автоматическое разбиение строки на подстроки по ширине колонки / ячейки или по количеству символов

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

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

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

12
Длинный адрес контрагента или нестандартная фамилия не входит в одну строку, а РазмещениеТекста = Переносить по какой-либо причине не устраивает? Что можно сделать? Вот пара полезных функций для решения данного вопроса с примерами применения.

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

Первое, что приходит на ум - просто изменить режим размещания текста:

ТекОбласть.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;

переносить

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

Вариант 1. По количеству символов строки.

Функция СтрРазбитьНаПодстроки(ИсходнаяСтрока, КоличествоСимволовПодстроки)
	КоличествоСимволовПодстроки = ?(КоличествоСимволовПодстроки < 1, 1, КоличествоСимволовПодстроки);
	ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, Символы.ПС, " ");
	//разбить строку на максимальную длину в строке с учётом пробелов
	Пока Истина Цикл
		//получить кол-во строк
		КолВоСтрок = СтрЧислоСтрок(ИсходнаяСтрока);
		//взять последнюю
		ТекСтрока = СтрПолучитьСтроку(ИсходнаяСтрока, КолВоСтрок);
		//если длинее максимума
		Если СтрДлина(ТекСтрока) > КоличествоСимволовПодстроки Тогда
			ТекущаяПозиция = КоличествоСимволовПодстроки;
			СтрВставитьКудаНадоПС(ИсходнаяСтрока, ТекСтрока, КоличествоСимволовПодстроки);
		Иначе
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	Возврат ИсходнаяСтрока;
КонецФункции
Процедура СтрВставитьКудаНадоПС(ИсходнаяСтрока, ТекСтрока, КоличествоСимволовПодстроки)
	//найти в ней последний пробел
	ТекущаяПозиция = КоличествоСимволовПодстроки;
	ДлинаПодСтроки = СтрДлина(ТекСтрока);
	Пока Истина Цикл
		Если КодСимвола(ТекСтрока, ТекущаяПозиция) = 32 Тогда
			//заменить пробел на перенос
			ВремСтрока = Лев(ТекСтрока, ТекущаяПозиция - 1) + Символы.ПС + Сред(ТекСтрока, ТекущаяПозиция + 1, ДлинаПодСтроки - ТекущаяПозиция);
			//заменить строку в основной
			ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, ТекСтрока, ВремСтрока);
			Прервать;
		ИначеЕсли ТекущаяПозиция = 1 Тогда
			//отрезать первый кусок
			ПоБуквам = (КоличествоСимволовПодстроки = 1);
			ВремСтрока = Лев(ТекСтрока, ?(ПоБуквам, КоличествоСимволовПодстроки, КоличествоСимволовПодстроки - 1)) + ?(ПоБуквам, "", "-") + Символы.ПС + Сред(ТекСтрока, ?(ПоБуквам, КоличествоСимволовПодстроки + 1, КоличествоСимволовПодстроки), ДлинаПодСтроки - (КоличествоСимволовПодстроки - 1));
			//заменить строку в основной
			ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, ТекСтрока, ВремСтрока);
			Прервать;
		КонецЕсли;
		ТекущаяПозиция = ТекущаяПозиция - 1;
	КонецЦикла;
КонецПроцедуры

Разбивка по пробелам есть, символ переноса, если слово не входит целиком есть, "защита от дурака" есть. Кстати, если передать вторым параметром 1, то получим преобразвание строки в "столбец".

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

Неплохо! С оговоркой, неплохо это только для моноширных шрифтов. А с обычными получается следующее. Посчитали, сколько входит единиц, а передав строку с буквами типа "Щ", "Ж", "Ю" окажется, что она не войдёт в область. Стоит это иметь ввиду и передавать количество символов с расчётом на самые широкие, но тогда в случае попадания узких символов, может показаться не очевидным, зачем произошёл перенос, если до правой границы ещё достаточно свободного места.

Вариант 2. По ширине ячейки / колонки.

Что изменяется из свойств области при переполнении? Высота! Отлично, она и будет индикатором для переноса строки.

Функция СтрРазбитьНаПодстрокиПоШиринеЯчейки(ТабДок, ТабДокОбластьЯчейки, ИсходнаяСтрока)
	ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, Символы.ПС, " ");
	//разбить строку на максимальную длину в строке с учётом пробелов
	Пока Истина Цикл
		//получить кол-во строк
		КолВоСтрок = СтрЧислоСтрок(ИсходнаяСтрока);
		//взять последнюю
		ТекСтрока = СтрПолучитьСтроку(ИсходнаяСтрока, КолВоСтрок);
		//если длинее максимума
		ДлинаПодСтроки = СтрДлина(ТекСтрока);
		//получить максимум
		Позиция = 1;
		Пока Позиция < ДлинаПодСтроки Цикл
			Если ПроверитьОднострочныйВыводТекстаВЯчейку(ТабДок, ТабДокОбластьЯчейки, Лев(ТекСтрока, Позиция)) Тогда
				Позиция = Позиция + 1;
			Иначе
				Позиция = Позиция - 1;
				Прервать;
			КонецЕсли;
		КонецЦикла;
		Позиция = ?(Позиция < 1, 1, Позиция);
		КоличествоСимволовПодстроки = Позиция;
		Если ДлинаПодСтроки > КоличествоСимволовПодстроки Тогда
			ТекущаяПозиция = КоличествоСимволовПодстроки;
			СтрВставитьКудаНадоПС(ИсходнаяСтрока, ТекСтрока, КоличествоСимволовПодстроки);
		Иначе
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	Возврат ИсходнаяСтрока;
КонецФункции
Процедура СтрВставитьКудаНадоПС(ИсходнаяСтрока, ТекСтрока, КоличествоСимволовПодстроки)
	//найти в ней последний пробел
	ТекущаяПозиция = КоличествоСимволовПодстроки;
	ДлинаПодСтроки = СтрДлина(ТекСтрока);
	Пока Истина Цикл
		Если КодСимвола(ТекСтрока, ТекущаяПозиция) = 32 Тогда
			//заменить пробел на перенос
			ВремСтрока = Лев(ТекСтрока, ТекущаяПозиция - 1) + Символы.ПС + Сред(ТекСтрока, ТекущаяПозиция + 1, ДлинаПодСтроки - ТекущаяПозиция);
			//заменить строку в основной
			ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, ТекСтрока, ВремСтрока);
			Прервать;
		ИначеЕсли ТекущаяПозиция = 1 Тогда
			//отрезать первый кусок
			ПоБуквам = (КоличествоСимволовПодстроки = 1);
			ВремСтрока = Лев(ТекСтрока, ?(ПоБуквам, КоличествоСимволовПодстроки, КоличествоСимволовПодстроки - 1)) + ?(ПоБуквам, "", "-") + Символы.ПС + Сред(ТекСтрока, ?(ПоБуквам, КоличествоСимволовПодстроки + 1, КоличествоСимволовПодстроки), ДлинаПодСтроки - (КоличествоСимволовПодстроки - 1));
			//заменить строку в основной
			ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, ТекСтрока, ВремСтрока);
			Прервать;
		КонецЕсли;
		ТекущаяПозиция = ТекущаяПозиция - 1;
	КонецЦикла;
КонецПроцедуры
Функция ПроверитьОднострочныйВыводТекстаВЯчейку(ТабДок, ТабДокОбласть, Текст)
	ИсходнаяВысота = ПолучитьВысотуОбласти(ТабДок, ТабДокОбласть);
	
	ВремТабДок = Новый ТабличныйДокумент;
	ВремТабДок.Вывести(ТабДок);
	ТекОбласть = ВремТабДок.Область(ТабДокОбласть.Имя);
	ТекОбласть.АвтоВысотаСтроки = Истина;
	ТекОбласть.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
	
	ТекОбласть.ВысотаСтроки = 0;
	ТекОбласть.Текст = Текст;
	ТекВысота = ПолучитьВысотуОбласти(ВремТабДок, ТекОбласть);
	
	Возврат ?(ИсходнаяВысота = ТекВысота, Истина, Ложь);
КонецФункции
Функция ПолучитьВысотуОбласти(ТабДок, ТекОбласть)
	Заглушка = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Текст);
	Заглушка.Расположить(ТекОбласть);
	ВысотаЯчейки = Заглушка.Высота;
	ТабДок.Рисунки.Удалить(Заглушка);
	Возврат(ВысотаЯчейки);
КонецФункции

Ну и выводим в табличный документ преобразованную строку:

ИсходнаяСтрока = "Очень длинная строка, неспособная войти в выделенную для неё область";

ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
НекаяОбласть = Макет.ПолучитьОбласть("НекаяОбласть");
	
ФорматированнаяСтрока = СтрРазбитьНаПодстрокиПоШиринеЯчейки(НекаяОбласть, НекаяОбласть.Область("R1C2"), ИсходнаяСтрока);
	
Для ё = 1 По СтрЧислоСтрок(ФорматированнаяСтрока) Цикл
	НекаяОбласть.Параметры.НекийПараметр = СтрПолучитьСтроку(ФорматированнаяСтрока, ё);
	ТабДок.Вывести(НекаяОбласть);
КонецЦикла;

Вариант 3. Не разбивать строку, а уменьшать шрифт.

Лично меня такой вариант не устраивает минимум по трём причинам:

  1. Размер шрифта ниже некоего становится нечитаемым (порог достигается раньше, если зрение неидеальное).
  2. Печатному документу могут диктоваться стогие правила оформления/форматирования.
  3. Размер шрифта достиг минимально возможного, но текст так и не вместился.

Методика та же, что и в варианте 2, с той разницей, что играться прийдётся не с длиной строки, а с размером шрифта.

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

Надеюсь кому-то окажется полезным. 

12

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

Наименование Файл Версия Размер
АвтоматическоеРазбиениеСтрокиНаПодстроки
.epf 9,87Kb
13.10.16
2
.epf 9,87Kb 2 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. gubanoff 46 21.10.16 16:03 Сейчас в теме
(0) порекламирую свою публикацию, которая также разбивает предложение на строки с заданным числом символов, но делает это по слогам Красивый перенос строк по слогам
2. yku 326 28.10.16 12:19 Сейчас в теме
И у меня очень похожий приём используется. В комментариях много всякого предложили.
http://infostart.ru/public/123769/
Оставьте свое сообщение

См. также

Новости для пользователей 117

Отчеты и формы Пользователь Расширение (cfe) v8 1cv8.cf Абонемент ($m) Универсальные обработки

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

1 стартмани

05.08.2019    4308    11    sapervodichka    15       

Работа с файлами (обычная и управляемая форма) 83

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Универсальные обработки

Нужно загрузить файл с клиента на сервер или же, наоборот, файл загрузить с сервера на клиент, а впридачу все это на web-клиенте, да еще и асинхронно? Нет ничего проще, читай далее, как это сделать!

1 стартмани

10.06.2019    5510    43    Xershi    40       

Быстрый запрос 41

Отчеты и формы Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Универсальные обработки

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

1 стартмани

29.04.2019    5318    15    mkalimulin    28       

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

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

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

1 стартмани

31.01.2019    24645    242    bonv    102       

HTML в новой версии 8.3.14 на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX 167

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные обработки Практика программирования Разработка

Тестируем возможности HTML в новой версии 8.3.14 платформы на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX.

1 стартмани

29.01.2019    12557    62    Synoecium    33       

Редактор объектов информационной базы 8.3 35

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРОбъектУпр) для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.31 от 02.10.2019

2 стартмани

23.01.2019    8360    123    ROL32    21       

Сравнение pdf-файлов актов сверки 1

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::БУ БП2.0 Россия БУ Дебиторская и кредиторская задолженность Абонемент ($m) Универсальные обработки

Обработка сравнивает два pdf-файла, в которых находятся стандартные печатные формы актов сверки, и показывает на экране совпадающие и/или отличающиеся по суммам документы взаиморасчетов.

1 стартмани

19.12.2018    5466    4    Torin99    2       

Использование подсистемы БСП "Заполнение объектов" 133

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

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

1 стартмани

23.11.2018    12804    8    ids79    14       

Обнуление остатков регистров бухгалтерии и накопления 40

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::БУ v8::ОУ v8::УФ КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ БГУ ERP2 БП3.0 УТ11 УХ КА2 ЗУП3.x Россия Абонемент ($m) Универсальные обработки Чистка базы

Обработка позволяет обнулить остатки по регистру накопления или бухгалтерии на определенную дату. Поддерживается большинство типовых конфигураций (БП 3, БП 2, УТ 11, УТ 10, ЗУП 3, ЗУП 2, БГУ 2, БГУ 1, ERP, УПП, КА 2, КА 1, УХ 3, УХ 1, УНФ). Гибкая настройка (отборы, заполнение реквизитов и любых полей корр. счета, возможность обнулять ресурсы выборочно). Несколько режимов работы. Два интерфейса: простой и с расширенным набором настроек.

2 стартмани

19.11.2018    8668    162    morozov.sv    30       

Навигатор по конфигурации базы 1С 8.3 98

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРНавигаторУпр) для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Небольшой набор сервисных функций для повседневной работы. Для программистов и пользователей. Платформа 8.3, управляемые формы. Версия 1.1.0.43 от 01.10.2019

3 стартмани

28.10.2018    14268    175    ROL32    43       

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

Инструменты и обработки Программист Пользователь Архив с данными v8 КА1 БП2.0 УТ10 УПП1 Windows Абонемент ($m) Печатные формы документов Универсальные функции Email

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

1 стартмани

21.09.2018    10902    10    stvorl    0       

Просмотр, изменение реквизитов объекта. Сравнение двух одинаковых объектов метаданных ИБ 0

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Абонемент ($m) Универсальные обработки

Показывает реквизиты объекта (ов) или сравнивает два одинаковых объекта конфигурации справочники, документы.

1 стартмани

26.04.2018    7987    18    Vin_Tik    0       

Построение маршрута доставки с расчётом расстояния для любой базы УФ 56

Инструменты и обработки Руководитель проекта Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Оптовая торговля Абонемент ($m) Универсальные обработки WEB

Графическое изображение маршрутного листа по картам гугл. Работает на любой конфигурации с управляемыми формами. Использует новую версию api google-карт от 13.02.2018 года под IE11.

10 стартмани

24.02.2018    18179    35    KorotkovRV    16       

Навигация по функциональным опциям типовых конфигураций 130

Отчеты и формы no Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные обработки Пользователю системы

Из релиза в релиз разделы и функциональные опции меняют своё местоположение. Вкупе с многостраничными формами настроек поиск нужной настройки становится испытанием для терпеливых. Я нашел такое решение.

1 стартмани

30.01.2018    16038    71    kuzyara    12       

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

Отчеты и формы Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Печатные формы документов Практика программирования Универсальные функции

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

1 стартмани

29.12.2017    21257    21    agent00mouse    0       

Проверка орфографии средствами Yandex Speller 77

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные обработки WEB

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

1 стартмани

09.11.2017    12954    49    🅵🅾️🆇    38       

Размеры управляемой формы 100

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом Универсальные функции

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

1 стартмани

08.10.2017    17492    46    json    8       

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

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

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

2 стартмани

28.08.2017    25323    158    Bazil    22       

Шаблон внешней обработки регламентного задания с формой настройки параметров выполнения 86

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Инструментарий разработчика Универсальные функции

Шаблон внешней обработки призван упростить программисту процесс реализации внешнего регламентного задания. Пригоден к использованию во всех конфигурациях на управляемых формах, в которых присутствует подсистема "Дополнительные отчеты и обработки" из состава библиотеки стандартных подсистем (БСП) версии 2.1 и выше.

1 стартмани

28.05.2017    17291    140    Bassgood    10       

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов 175

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

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    38227    166    DarkAn    86       

Консоль сравнения данных (1С 8, 1С 7.7, SQL, CSV, TXT, DBF, XLS, DOC, XML, JSON, табличный документ) (версия 15.0.46) 91

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Беларусь Абонемент ($m) Универсальные обработки

Обработка Консоль сравнения данных (КСД) предназначена для сравнения данных, полученных из разных источников данных: информационных баз 1С 8, 1С 7.7, баз данных SQL, файлов формата CSV/TXT/DBF/XLS/DOC/XML, строки JSON, вручную заполненного табличного документа. Минимально необходимая версия платформы: 8.3.6.1977.

1 стартмани

13.02.2017    22348    103    sertak    68       

Отладка/доработка модуля менеджера "на лету" 89

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

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

1 стартмани

23.10.2016    22636    19    json    22       

Поиск и отключение зависших сеансов на сервере 1С: Предприятия 11

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Windows Абонемент ($m) Универсальные обработки

Обработка предназначена для мониторинга и отключения спящих (зависших) сеансов на сервере 1С: Предприятия.

1 стартмани

14.09.2016    22095    67    wowchik_85    9       

Редактор движений документа. Сохранение в XML, обмен между базами, замена регистратора. 23

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 Абонемент ($m) Обработка документов Универсальные обработки Обмен через XML

Редактор набора записей движений документа. Позволяет сохранить набор записей в XML, в настройки пользователя, прочитать сохраненный XML в другой идентичной базе, заменить регистратор. Можно изменять порядок записей, менять активность, как массово, так и по одной и др. Тонкий клиент, управляемые формы.

1 стартмани

07.09.2016    27425    146    Aphanas    4       

Универсальный поиск объектов по глобальному уникальному идентификатору (ГУИД, GUID) 8

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Поиск данных Универсальные обработки

Универсальная обработка поиска объектов информационной базы по глобальному уникальному идентификатору (ГУИД, GUID) или по его части.

1 стартмани

06.09.2016    23088    101    Dzenn    8       

Оптимальный способ расчета контрольной суммы объекта/записи регистра (CRC32, MD5, SHA1, SHA256) 19

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные обработки

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

1 стартмани

01.08.2016    21223    5    hakerxp    9       

Работа с Яндекс.Диском (обычная и управляемая форма) 78

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные обработки WEB

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

1 стартмани

10.07.2016    20602    145    Xershi    55       

Просмотр данных системы Платон на картах Google 10

Инструменты и обработки Руководитель проекта Внешняя обработка (ert,epf) v8 1cv8.cf Автомобили, автосервисы Транспорт, автопарки, такси Windows Абонемент ($m) Универсальные обработки WEB

Обработка для просмотра предполагаемых треков движения транспортного средства на карте Google согласно данным, предоставляемым системой Платон в формате CSV. Работает под 8.2 и 8.3, обычное и управляемое приложение, может подключаться к типовым конфигурациям в качестве внешней обработки.

1 стартмани

15.04.2016    22674    21    anig99    8       

ЕГАИС: код алкогольной продукции из штрихкода акцизной марки 15

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Windows Оптовая торговля Розничная торговля Акцизы Абонемент ($m) Универсальные обработки

В последнее время мне пришлось потратить очень много времени на внедрение и реализацию функционала ЕГАИС. Очень часто, на форумах, я встречал вопрос: "Как из штрих-кода акцизной марки получить код алкогольной продукции ЕГАИС?". Несколько раз видел неверную реализацию этой задачи. Глядя на это, я набросал простую обработку пересчета кода акцизной марки (base36) в понятный нам уникальный ФСРАР ID алкогольной продукции (Base10).

1 стартмани

11.02.2016    46293    153    OrcaMax    29       

Снимок экрана для 1С 10

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Россия Windows Абонемент ($m) Универсальные обработки Разработка внешних компонент

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

1 стартмани

08.02.2016    20315    30    linkforget    11       

Генерация QR-кода (управляемая форма, обычное и управляемое приложение) 59

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Windows Абонемент ($m) Универсальные функции Универсальные обработки

Обработку можно быстро и легко интегрировать в любую конфигурацию с и без БСП (Библиотека Стандартных Подсистем).

3 стартмани

04.02.2016    35471    151    tunesoft    24       

Автоматическая подстановка уничтожений временных таблиц в текст запроса 7

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные функции

Функция, которая сама подставляет в текст запроса "УНИЧТОЖИТЬ" в местах последнего использования ВТ.

1 стартмани

14.11.2015    14980    SeiOkami    3       

Интерфейс сопоставления объектов для обмена (для типового регистра СоответствиеОбъектовДляОбмена) 22

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 КА1 БП2.0 ЗУП2.5 УТ10 УПП1 Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки Перенос данных из 1C8 в 1C8

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

4 стартмани

11.11.2015    29276    221    catsam    8       

Асинхронная загрузка данных на Управляемую Форму. Прогресс бар (УФ 8.3). Индикация состояния процесса 78

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом Универсальные функции Внешние источники данных

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

1 стартмани

09.10.2015    28650    133    pbazeliuk    6       

[x1c.ru] MXL Stamps - Печати и подписи в макетах печатных форм в несколько кликов 3

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Печатные формы документов Универсальные обработки

Обработка позволяет быстро создавать поля текста из ячеек печатных форм и добавлять "под них" подписи и печати. Работает в конфигурациях на управляемых формах.

1 стартмани

22.08.2015    26528    23    GusevNA    6       

Работа с push сервисами только средствами 1С 8.2 24

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 Windows Абонемент ($m) Сервисные утилиты Инструментарий разработчика Универсальные обработки

Обработка для настройки, тестирования и использования с предустановками для 3-х сервисов. Текст модуля для внедрения в конфигурацию или другие обработки. Уведомления на телефон, компьютер, браузер.

1 стартмани

18.08.2015    23571    45    anig99    1       

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении 58

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 1cv8.cf Россия БУ Windows Учет ТМЦ Абонемент ($m) Инструментарий разработчика Универсальные функции

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

1 стартмани

17.08.2015    38120    167    ekaruk    31       

Методы для группировки данных по полю,полям в Таблице Значений на примере универсального метода списания по партиям, а также отбора строк в ТЗ по произвольному условию. Для 8.x и 7.7 4

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 v8 1cv8.cf 1cv7.md Windows Абонемент ($m) Практика программирования Универсальные функции

Я очень часто использую группировку данных по полю и полям, как в восьмерке, так и в семерке. Это аналог запроса Итоги, но там строится дерево, а в большинстве случаев нужны "плоские данные". Да и делать запрос в большинстве случаев более накладный процесс, чем работа с ТЗ. Все достоинства такого подхода приведены на примере метода универсального списания по париям, а так же отбора строк в ТЗ по произвольному условию. Для 7.7 еще отчеты сравнения двух ТЗ. Работая с различными базами для упрощения сравнения номенклатуры, или как аналог джойнов(join), сделал сравнение двух таблиц значений по нескольким полям. Пока группировки полей должны быть уникальны. Часто приходится искать дубли, для универсального поиска есть ДублиВТзПоПолю и пример в Тест.ert.

1 стартмани

25.06.2015    20956    4    Serginio    1       

Универсальная обработка "Изменение записей регистров сведений и накопления" (8X) 48

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Универсальные обработки

Обработка для Добавления/удаления/изменения записей в любых регистрах сведений (подчиненных и не подчиненных регистраторам) и накопления. Для Платформ 8.1, 8.2, 8.3

2 стартмани

24.05.2015    47157    1217    Erofeevgv    56       

Нейронная сеть. Создаем, учим и используем. В одной обработке 133

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Обработка для создания, обучения и использования многослойного персептона на платформе родного и любимого 1С-а.

1 стартмани

12.05.2015    32733    231    dusha0020    52       

Яндекс (Yandex) Диск. Обновляйте свои внешние обработки, обработки заполнения, печатные формы и отчеты. 80

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные обработки WEB

Хранить свои внешние обработки на внешнем носителе типа Yandex диска удобно, а обновлять в базах 1С еще удобней.

1 стартмани

15.04.2015    31493    126    Patriot1S    35       

Подсистема проверки контрагентов через сервис ГосРеестра для объединения с любой конфигурацией (или автономной работы) 5

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Windows Абонемент ($m) Универсальные обработки Обработка справочников

Еще один вариант для проверки контрагентов через сервис ФНС. Механизм аналогичен проверке в типовой БП 3.0 и полностью автономен, можно объединить с любой конфигурацией. При первом запуске просит ввести логин и пароль для доступа к сайту поддержки 1С.

1 стартмани

06.04.2015    13901    54    Foxes82    12       

Использование общих модулей "Длительные операции" из состава БСП или асинхронное выполнение серверных процедур без блокировки пользовательского интерфейса 124

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Производительность и оптимизация (HighLoad) Универсальные функции БСП (Библиотека стандартных подсистем)

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

1 стартмани

17.03.2015    54884    163    Bassgood    15       

Работа с Excel. Объединение, Стыковка, Свертка 4

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Универсальные обработки Загрузка и выгрузка в Excel

Обработка позволяет работать как с одним, так и с несколькими файлами Excel: Объединять файлы со сходной структурой в одну таблицу, Стыковать файлы с разной структурой по ключевому полю, Группировать результат по выбранным полям и суммировать числовые поля.

1 стартмани

19.02.2015    18298    35    Ekovichev    7       

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр 207

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные функции

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

1 стартмани

14.02.2015    89099    104    daMaster    87       

Регулярные выражения без COM объектов и внешних компонент 27

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Универсальные функции

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

1 стартмани

09.02.2015    20481    18    boogie    35       

Лучшие методы сравнения таблиц значений 324

Инструменты и обработки Программист Внешний отчет (ert,erf) v8 1cv8.cf Абонемент ($m) Универсальные функции

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

1 стартмани

02.02.2015    88738    51    ildarovich    54       

Полезные функции БСП 235

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Универсальные функции

Список часто востребованных, по моему мнению, функций из состава Библиотеки стандартных подсистем 2.2.

1 стартмани

01.02.2015    45811    47    spec8s    30