Преобразование числа в строку в запросе 1С 8.x

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

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

Преобразование числа в строку запрос 1С

21
В запросах 1С предприятие 8.x есть ограничение: нельзя преобразовывать число в строку.

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

Данное ограничение можно преодолеть с помощью математической операции округления. Далее представлен текст запроса, который вернет строку "Число приведенное к строке 97443.456".

 

ВЫБРАТЬ
    97443.456 КАК Поле
ПОМЕСТИТЬ ТЗ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    "Число приведенное к строке " +
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 10000 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 100000 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 1000 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 10000 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 100 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 1000 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 10 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 100 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + ТЗ.Поле - (ВЫРАЗИТЬ(ТЗ.Поле / 10  - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)+
    "."+
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 0.1 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 1 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 0.01 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 0.1 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 0.001 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 0.01 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)
    КАК СтрокаПоле
ИЗ
    ТЗ КАК ТЗ

 

Рассмотрим как это работает. Каждая цифра вычисляется и выводится отдельно. Для цифры в разряде i вычисление проводится следующим образом

Операция Цел(x) реализуется в запросе 1С 8.x с помощью округления Выразить. Несложно проверить:

Цел(x)=Выразить(x - 0.5 КАК ЧИСЛО(14,0))

Мы получили весь набор цифр числа в виде чисел от 0 до 9. Сделать из них строки можно с помощью Строковой функции ПОДСТРОКА("0123456789",1+Цифра).

Аналогично можно реализовать вывод чисел в другой системе счисления.

Подобный функционал можно просмотреть здесь: http://kb.mista.ru/article.php?id=666

21

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

Комментарии
Избранное Подписка Сортировка: Древо
1. u_n_k_n_o_w_n 37 23.02.16 21:58 Сейчас в теме
Плагиат!!!
Просьба указать первоисточник!!!
2. starik-2005 1954 23.02.16 22:05 Сейчас в теме
4. lastcontra 54 24.02.16 08:05 Сейчас в теме
(2) starik-2005, в твоей ссылке на статью написано, что это невозможно, кроме одного сообщения, что нужно вывести по разрядам (но как это сделать не расписано, и инициатор в итоге смирился, что это не возможно). Я говорю, что это возможно, вот конкретный пример в статье.
5. starik-2005 1954 24.02.16 09:17 Сейчас в теме
(4) Вы бы в смысл того, что я написал, вдумальсь бы немного. То, что Вы скопипастили один в один запрос из статьи "минимализмы", автор которой скопипастил ее из приведенных им источников - это не плохо. Но моя ссылка на древний источник, в котором это расписано, а там есть посылка в книгу знаний мисты, где данный запрос приведен в том практически виде, который приводите Вы. Странно, что автор первого коммента не уличил в плагиате Ильдаровича !или как его там?)
u_n_k_n_o_w_n; +1 Ответить
7. lastcontra 54 24.02.16 11:48 Сейчас в теме
(5) starik-2005, чтобы вдуматься в смысл того, что ты написал, надо хотя бы что-то написать.
Из того что ты написал "тут и ссылка" я должен найти очень тайную книгу Мисты и статью "минимализмы"???
Ссылку на статью кто-нибудь может прислать?
Так можно про любую статью писать - "все что придумано - плагиат тайной книги которой мы поклоняемся каждый раз в монитор".
Пока не увижу статью нет смысла трепаться. Да и мне не нужно никому доказывать, что до меня это никто не придумал, не нравится не читай.
10. ildarovich 6713 24.02.16 13:31 Сейчас в теме
(5) starik-2005,
То, что Вы скопипастили один в один запрос из статьи "минимализмы", автор которой скопипастил ее из приведенных им источников

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

Преобразование строки в число приведенным здесь способом - более-менее очевидное решение. В своей статье я бы его повторять не стал, но мотивы автора статьи мне понятны, претензию на оригинальность автор объяснил.

Вообще такое решение я уже видел ранее несколько раз. В ссылке на мисте оно записано наиболее "коряво". Данное решение мне не нравилось тем, что аргумент приходится записывать дважды. В моем решении остаток от деления вычисляется через функции работы с датами (в этом суть изобретения), что дает более короткую запись с одним упоминанием аргумента при нахождении каждого разряда.
cleaner_it; +1 Ответить
11. starik-2005 1954 24.02.16 19:40 Сейчас в теме
(10) ildarovich, вот честно даже не тягет с умным человеком спорить ни разу. Но про плагиат не я написал, заметьте. Уже второй раз пытаюсь защитить позицию автора на данном сайте, но из-за, видимо, проблем с логикой у 1с-ников, мне же и достается)))
3. lastcontra 54 24.02.16 08:00 Сейчас в теме
(1) u_n_k_n_o_w_n, укажи первоисточник, раз ты уже видел такую статью.
6. Sgeor 24.02.16 09:44 Сейчас в теме
Может каждому пользователю такую статейку написать? =)
http://infostart.ru/public/331805/
speshuric; mike_grig; Bassgood; u_n_k_n_o_w_n; Dimel; +5 Ответить
8. u_n_k_n_o_w_n 37 24.02.16 12:24 Сейчас в теме
9. lastcontra 54 24.02.16 12:42 Сейчас в теме
Добавил ссылку подобную на статью. Признаю, что она более ранняя, чем моя. Но моя статья не является ее копией, ничего особенного нет в этих статьях (включая мою), чтобы их нельзя было написать самому, имея какое-то тайное знание.
12. Fragster 928 02.03.16 14:33 Сейчас в теме
Регулярно вижу статьи на тему преобразования строки в число и обратно в запросе. И каждый раз возникает вопрос: "А зачем?"
13. lastcontra 54 02.03.16 20:28 Сейчас в теме
(12) Fragster, значит ты их регулярно читаешь и пишешь отзывы, а зачем? 1. Ничего нового не узнал, 2. чего ты хочешь чтобы тебе ответили? ЗАЧЕМ????
14. Fragster 928 03.03.16 15:01 Сейчас в теме
(13) реальная применимость этих запросов какая? Ну, кроме "смотрите, как я могу?"
15. speshuric 1120 11.03.16 03:12 Сейчас в теме
(14) Fragster,
В идеальном мире, где единороги какают радугой, и есть бесконечные ресурсы и бесконечное время на разработку такие запросы, наверное, не нужны. Почти всегда они говорят о каких-то неприятных вещах типа технического долга или кривой архитектуры. Но у нас, в реальном мире, они часто пригождаются. Примеры:
  • Иногда (в отчетах) очень нежелательно протягивать в источнике данных новое поле и нужно сформировать строку типа "Название+Размер". А если этот отчет на построителе отчетов, а не на СКД, то и вообще альтернатив нет, если не переписывать его полностью.
  • При вытягивании достаточно больших объёмов из базы (выгрузки или очень большие отчеты) то же самое представление на сервере будет считаться быстрее и меньше данных придётся тянуть с сервера. А если весь код выгрузки/отчета вообще оперирует только результатами запроса, то опять же - альтернатив кроме как "переписать всё" нет. Я сталкивался с отчетами и выгрузками по 100 млн строк.
  • Внешняя система даёт вам неразбираемый фильтр по такому представлению ("Название+Размер"). приходится собирать из своих полей в запросе и сравнивать с таким фильтром. Не тянуть же без фильтра всё на клиента.
  • Нужно отсортировать выборку по представлению числа в алфавитном порядке (1, 10, 11, 12, 2, 3, 4, 5, 6, 7, 8, 9)
В обратную сторону тоже примеры есть. Да, еще раз подчеркну, когда возникает эта задача - это явный признак, что что-то не так в системе. Но обычно решение нужно скорее, чем полная переработка решения и структур данных, особенно, если это задачи отчетов или интеграции (которые часто ставятся и решаются после реализации основного функционала).

Другой вопрос, что задача тянет на слегка продвинутую задачу на собеседовании (если без текста, то хотя бы путь решения, и это минут на 5-7). Причем для ведущего программиста можно еще и с дополнительными ограничениями (например, "нам не известна разрядность") или ожидать 3-4 решения. А для лида или архитектора еще и вопрос "что надо сделать, чтобы не писать такие запросы".
16. inf012 31.10.16 09:35 Сейчас в теме
А что в итоге универсального решения нет?
Мне все в запросе надо обработать, у меня строка получается формата:
00003.000
А мне надо просто 3 чтобы вернулось.
Как убрать лидирующие нули? и дробную часть?
Если я заранее не знаю исходное число (также получается только в запросе)
17. ildarovich 6713 31.10.16 13:13 Сейчас в теме
(16) Универсальные решения есть:
Выразить число как строку и дату как строку в запросе ,
Выразить строку как число и строку как дату в запросе.

Но вам, видимо, нужно не строку в число преобразовать, а строку в строку без ведущих нулей и всего, что справа от точки (и без самой точки).
Хотя это и можно сделать "универсально" с помощью искусственных таблиц, при вашей длине строки лучше использовать громоздкое выражение ВЫБОР КОГДА ПОДСТРОКА(Х, 1, 1) = "0" ТОГДА ПОДСТРОКА(Х, 2, 8) КОГДА ПОДСТРОКА(Х, 1, 2) = "00" ТОГДА ТОГДА ПОДСТРОКА(Х, 3, 7) ... . Аналогично потом можно определить положение точки и обрезать строку справа.
18. k9260130000 19.10.17 14:26 Сейчас в теме
Лидирующие нули выбором убираем. За исключением их весьма годное решение. Как - то так получилось. Надо было писать сроки производства строкой через тире собирая из 2х чисел.

ВЫБОР
		КОГДА НЕ ЗаказПокупателя.СрокИзготовленияПродукции1 = 0
			ТОГДА ВЫБОР
					КОГДА НЕ ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции1 / 10 - 0.5 КАК ЧИСЛО(3, 0))) - (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции1 / 100 - 0.5 КАК ЧИСЛО(3, 0))) * 10, 1) = "0"
						ТОГДА ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции1 / 10 - 0.5 КАК ЧИСЛО(3, 0))) - (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции1 / 100 - 0.5 КАК ЧИСЛО(3, 0))) * 10, 1)
					ИНАЧЕ ""
				КОНЕЦ + ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции1 / 1 - 0.5 КАК ЧИСЛО(3, 0))) - (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции1 / 10 - 0.5 КАК ЧИСЛО(3, 0))) * 10, 1) + "-"
		ИНАЧЕ ""
	КОНЕЦ + ВЫБОР
		КОГДА НЕ ЗаказПокупателя.СрокИзготовленияПродукции2 = 0
			ТОГДА ВЫБОР
					КОГДА НЕ ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции2 / 10 - 0.5 КАК ЧИСЛО(3, 0))) - (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции2 / 100 - 0.5 КАК ЧИСЛО(3, 0))) * 10, 1) = "0"
						ТОГДА ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции2 / 10 - 0.5 КАК ЧИСЛО(3, 0))) - (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции2 / 100 - 0.5 КАК ЧИСЛО(3, 0))) * 10, 1)
					ИНАЧЕ ""
				КОНЕЦ + ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции2 / 1 - 0.5 КАК ЧИСЛО(3, 0))) - (ВЫРАЗИТЬ(ЗаказПокупателя.СрокИзготовленияПродукции2 / 10 - 0.5 КАК ЧИСЛО(3, 0))) * 10, 1)
		ИНАЧЕ ""
	КОНЕЦ КАК СрокПроизводства
Показать
19. dgonson 122 20.02.19 09:09 Сейчас в теме
Дописал код примера, что бы убирались нули, для полноты картины)

ВЫБРАТЬ
    45.5 КАК Поле
ПОМЕСТИТЬ ТЗ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 10000 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 100000 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 1000 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 10000 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 100 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 1000 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 10 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 100 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + ТЗ.Поле - (ВЫРАЗИТЬ(ТЗ.Поле / 10  - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)+
    "."+
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 0.1 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 1 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) +
    ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 0.01 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 0.1 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) 
    КАК СтрокаПоказатель
Поместить втПредварительныеДанные    
ИЗ
    ТЗ КАК ТЗ;
	
//////////////////////////////////////////////	
ВЫБРАТЬ
	СтрокаПоказатель,
	ВЫБОР КОГДА ПОДСТРОКА(СтрокаПоказатель,1,4)="0000" ТОГДА ПОДСТРОКА(СтрокаПоказатель,5,1) 
		  КОГДА ПОДСТРОКА(СтрокаПоказатель,1,3)="000"  ТОГДА ПОДСТРОКА(СтрокаПоказатель,4,2)  
	      КОГДА ПОДСТРОКА(СтрокаПоказатель,1,2)="00"   ТОГДА ПОДСТРОКА(СтрокаПоказатель,3,3)  
	      КОГДА ПОДСТРОКА(СтрокаПоказатель,1,1)="0"   ТОГДА ПОДСТРОКА(СтрокаПоказатель,2,4)  
	ИНАЧЕ ПОДСТРОКА(СтрокаПоказатель,1,5)       
	КОНЕЦ
	+
	ВЫБОР КОГДА ПОДСТРОКА(СтрокаПоказатель,7,2)="00" ТОГДА ""
	ИНАЧЕ 
		ВЫБОР КОГДА ПОДСТРОКА(СтрокаПоказатель,8,1)="0" ТОГДА ПОДСТРОКА(СтрокаПоказатель,6,2)
		ИНАЧЕ ПОДСТРОКА(СтрокаПоказатель,6,3)
	    КОНЕЦ
	КОНЕЦ    
	
ИЗ втПредварительныеДанные
Показать
Оставьте свое сообщение

См. также

Полезняшки по СКД и построителям. Просто код 26

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Универсальные функции

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

10.10.2019    1248    Yashazz    13       

Отслеживание выполнения фонового задания 133

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

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

17.08.2019    7719    ids79    14       

Сохранение запроса со всеми параметрами и временными таблицами 20

Статья Программист Нет файла v8 v8::УФ Россия Бесплатно (free) Универсальные функции

Функция сохранения запроса со всеми параметрами и временными таблицами в формате *.q1c для открытия в консоли запросов с диска ИТС.

13.05.2019    2333    Serge R    5       

Иерархия справочника Сверху Вниз. Получаем произвольное количество родителей "верхнего" уровня 7

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

Иерархия справочника Сверху Вниз. Функция для получения произвольного количества родителей "верхнего" уровня. На примере справочника "Номенклатура".

28.03.2019    1958    obsfromekb    11       

Доработка проведения типовых документов в УТ 11.4, КА 2.4, ЕРП 2.4 101

Статья Программист Нет файла v8 v8::УФ ERP2 УТ11 КА2 Россия УУ Бесплатно (free) Практика программирования Разработка Универсальные функции

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

22.03.2019    8546    ids79    14       

Добавление отчетов в типовые конфигурации 1С 200

Статья Программист Нет файла v8::УФ v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

Описание различных способов добавления общих и контекстных отчетов в конфигурации 1С, построенные на базе БСП. Основные моменты и нюансы.

07.03.2019    22549    ids79    32       

Расширение конструктора мобильного рабочего места для варианта "клиент 1С+RDP" (для любых wi-fi терминалов). Экосистема решений Simple WMS 20

Статья Программист Бизнес-аналитик Руководитель проекта Нет файла v8::УФ УУ Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Бесплатно (free) Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Универсальные функции Мобильная разработка

Развитие проекта «Конструктор мобильного клиента на Android» https://infostart.ru/public/976636/ для устройств не на Андроиде (работающих в режиме RDP). В отличие от варианта Android работа на терминалах происходит в режиме 1С:Предприятие через RDP а конфигурации мобильных клиентов полностью совместимы для обоих версий. Т.е. конфигурация единая, создается один раз и ее может читать как Android -устройство, так и 1С-клиент на RDP без необходимости какой либо переделки.

05.02.2019    5709    informa1555    0       

Работа со строками: от простого к сложному 25

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

Простые примеры работы со строками, в конце более читаемый разбор сложных текстов.

14.01.2019    7246    Evg-Lylyk    17       

Нумерация колонок субконто при выгрузке набора записей регистра бухгалтерии в таблицу значений 6

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

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

14.01.2019    2223    The Ded    3       

Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке 453

Статья Программист Нет файла v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Зарплата Управление персоналом (HRM) Бесплатно (free) Универсальные функции

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

14.11.2018    30813    GeterX    93       

Кадровые данные сотрудников в ЗУП 3.1 в отчетах 38

Статья Программист Нет файла v8 v8::СПР ЗУП3.x Россия Управление персоналом (HRM) Бесплатно (free) Универсальные функции

Параметры используемые для получения данных сотрудников в ЗУП 3.1. Пригодится для разработки отчетов как напоминалка.

07.11.2018    12580    fromlion    12       

Добавление расшифровки в стандартные и добавленные внешние отчеты со стандартной формой отчета на СКД 72

Статья Программист Нет файла v8::УФ v8::СКД ERP2 УТ11 Россия Бесплатно (free) Универсальные функции

Описан способ добавления расшифровки отчета на СКД как встроенного в систему, так и добавленного внешнего отчета.

27.09.2018    6434    bmk74    2       

Функция НайтиФайлы() в каталоге netshare на Linux - обход ошибки работы 6

Статья Программист Нет файла v8 Linux Бесплатно (free) Практика программирования Универсальные функции

Решение проблемы применения функции НайтиФайлы() в каталоге с netshare на Linux-сервере - не работает поиск файлов по указанной маске (шаблону)

19.09.2018    3178    drmaxart    1       

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

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

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

09.06.2018    7310    Serge R    12       

Генерация временного ряда запросом 7

Статья Программист Нет файла v8 v8::Запросы 1cv8.cf Бесплатно (free) Универсальные функции

Способ генерации последовательности дат средствами языка запроса 1С.

07.05.2018    5789    dim_zal    6       

Минимализмы 3 350

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    35196    ildarovich    44       

Таблица значений в Таблицу HTML - функция с возможностью настройки цвета шапки, заголовков, выравнивания и размера колонок 83

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

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

22.12.2017    18710    rpgshnik    21       

Пример преобразования двоичных данных в строку 26

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

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

08.12.2017    12262    frkbvfnjh    19       

Функция сохранения картинок из книги Excel в каталог с определением координат на листе 8

Статья Программист Нет файла v8 Бесплатно (free) Загрузка и выгрузка в Excel Универсальные функции

Разбор файла *.xlsx как Web-архива, выгрузка изображений без потери качества, с определением положения изображений.

12.11.2017    7063    user634820_zergemoth    1       

Определяем контекст сеанса 1С программно (Тонкий/Толстый клиенты/HTTP-Сервис/Фоновое задание и т.д.) 31

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

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

08.11.2017    15216    azubar    9       

Правила округления 5

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

Округление числовых значений по трём правилам математики

30.10.2017    7611    dakork    4       

#Область ВНЕШНИЕ_ВЫЗОВЫ или MVC в 1С, библиотечность и упрощение интеграции кода 43

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы Универсальные функции

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

12.10.2017    14400    for_sale    58       

Получение даты, зная день недели и его порядок в месяце 10

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

Иногда бывает необходимость получить "Первый понедельник месяца" или "Вторую пятницу месяца". Есть несколько способов решения вопроса. Опишу один из них.

12.09.2017    8042    987ww765    10       

Разность дат 21

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

Иногда требуется получить разность дат в виде типа: 5 дней 6 месяцев 4 года. Это можно сделать с помощью запроса, получив на выходе сразу 3 нужных числа, без последующих вычислений.

11.08.2017    9665    jun-ko    24       

Простой способ преобразовать UNICODE в строку или в структуру 23

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) Практика программирования Универсальные функции

Первая функция получает Строку, которая содержит строчки вида «Ключ=Значение». Вторая функция получает Структуру.

07.07.2017    7094    dimasts    5       

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

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

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

16.12.2016    27661    alexandersh    45       

Пример работы с шаблоном Word через ole (клиент - сервер, тонкий клиент) - установка значений и заполнение таблицы 17

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

В примере показывается заполнение строк готовой таблицы, добавление новой таблицы, объединение ячеек, установка значений в "параметр".

09.11.2016    9945    gortrex    8       

Парсер JSON (Штатные средства 1С 8.3.6) 59

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

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

29.09.2016    45998    dour-dead    21       

Программное создание графических схем (v.2): API для ГрафическойСхемы 73

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом Универсальные функции

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

27.09.2016    16811    serg_infostart    15       

Вычитание рабочих дней от текущей даты 7

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Универсальные функции

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

08.09.2016    9548    semenich_b    7       

Используем механизмы обмена данными БСП для произвольного обмена 147

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции Внешние источники данных БСП (Библиотека стандартных подсистем)

Механизм БСП заточен на обмен XML по правилам обмена. Чтобы использовать его для любого другого обмена, коих в мире немало, требуются доработки. В статье описан вариант, как из положения выйти.

23.08.2016    27529    Патриот    22       

Склонение числа прописью 25

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

Склоняет число прописью до 999999 Пример: до склонения "Не позднее 3 (Три) дней", после - "Не позднее 3 (Трех) дней"

18.08.2016    15765    maxvcb    27       

Отборы в отчётах. Нюансы работы компоновщика настроек. 131

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

Открытие отчёта с предустановленным отбором, показанным пользователю. Изменение любых настроек в процессе работы отчёта. Взаимосвязи настроек.

15.08.2016    58882    Yashazz    23       

Автоматическое добавление новых реквизитов на форму (УФ) 38

Статья Программист Нет файла v8 v8::УФ Бесплатно (free) Работа с интерфейсом Универсальные функции

Идея такая: Программист добавил реквизит в объект. В комментарии этого реквизита прописал некое спец. слово (можно не матерное). На форму объекта новый реквизит далее попадает автоматом в спец. группу "Дополнительно".

03.08.2016    16118    Патриот    23       

HOWTO: создание и отладка HTTP-сервиса в 1С:Предприятие 123

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

Статья о том, как можно быстро создать HTTP-сервис в 1С:Предприятие и как выполнять его отладку.

25.07.2016    39200    serg_infostart    19       

Цикл ввода данных, пример решения 41

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

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

12.07.2016    11097    botokash    7       

Поиск несериализуемых значений при помещении в хранилище 12

Статья Программист Нет файла v8 Windows Бесплатно (free) Инструментарий разработчика Практика программирования Универсальные функции

В статье разобран пример, как найти несериализуемые значения в случае помещения в хранилище коллекций, содержащих вложенные элементы. В качестве хранилищ рассмотрены временное хранилище значений и переменные типа ХранилищеЗначения.

02.03.2016    19935    balanton    2       

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

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

14 универсальных функций, с примерами использования - для обычного и управляемого интерфейса

26.02.2016    35281    unichkin    36       

Изменения параметра или отбора типа Дата в форме отчета 6

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

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

08.02.2016    9741    dj_serega    3       

Использование классов .Net в 1С для новичков 147

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент Универсальные функции

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    62501    Serginio    104       

Быстрое визуальное сравнение двух таблиц значений 18

Статья Программист Нет файла v8 Windows Бесплатно (free) Универсальные функции

Предлагаю простой способ сравнить две таблицы значений.

13.11.2015    11834    Mi4man    14       

Перебор всех строк дерева значений в глубину 2

Статья Программист Нет файла v8 Windows Бесплатно (free) Универсальные функции

Процедура и функция перебора всех строк дерева значений в глубину.

11.11.2015    11324    kosmo0    6       

Три приёма, позволяющие сделать интерфейс конфигураций 1С на управляемых формах удобнее при большом шрифте 52

Статья Программист Нет файла v8 УНФ ERP2 БП3.0 Windows Бесплатно (free) Работа с интерфейсом Универсальные функции

С появлением управляемых форм вообще и БП 3.0 в частности пользователи, которые не хотят портить своё зрение рассматриванием мелкого шрифта, оказались в невыгодном положении. Многих элементов на экране в "тяжёлых" документах вообще оказалось не видно. Все попытки решить вопрос штатными средствами настройки предприятия оказались неэффективны. Вот несколько приёмов, которые буквально в два щелчка мышкой и парой строк кода помогут решить проблему.

05.11.2015    14913    H-Labs    11       

1С с "плюсами" 74

Статья Программист Нет файла v8 Бесплатно (free) Разработка внешних компонент Математика и алгоритмы Универсальные функции

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

14.10.2015    19492    IntelInside    47