Публикации

БСП
Разработки

Найдено результатов: 48


Поле планировщика Иерархический список

Подбросьте пожалуйста простенький примерчик с программным оформлением иерархии в Поле планировщика. Типа Корпус №1 . . . Этаж 1 . . . . . . Комната 1 . . . . . . Комната 2 ... . . . . . . Комната N . . . Этаж 2 . . . . . . Комната 1 . . . . . . Комната 2 ....

Проверка поля на существование

buketoff 30 5
Если Документ.Метаданные().Реквизиты.Найти("ИмяРеквизита") = Неопределено Тогда
     Сообщить("Поле ИмяРеквизита отсутствует");
КонецЕсли;

Значение полей в расшифровке СКД

Значение полей в расшифровке СКД
acsent 82 15
&НаСервереБезКонтекста 
Функция ПолучитьЗначениеПоляРасшифровкиНаСервере(ИдентификаторРасшифровки, АдресДанныхРасшифровки)
	
    ДанныеРасшифровки = ПолучитьИзВременногоХранилища(АдресДанныхРасшифровки);
	ЭлементРасшифровки = ДанныеРасшифровки.Элементы[ИдентификаторРасшифровки];
	
	МассивРодителей = Новый Массив;
	МассивРодителей.Добавить(ЭлементРасшифровки.ПолучитьПоля());
	
	Родители = ЭлементРасшифровки.ПолучитьРодителей();
	ЗаполнитьМассивРодителей(МассивРодителей, Родители);
	
	Результат = Новый Соответствие;
	Для Счетчик = 1 по МассивРодителей.Количество() Цикл 
		
		// Обойдем в обратном порядке, чтобы поставить условия в порядке группировок			
		ПоляКомпоновки = МассивРодителей[МассивРодителей.Количество() - Счетчик];
		Для каждого ПолеКомпоновки из ПоляКомпоновки Цикл
			
			//Если ПолеКомпоновки.Иерархия Тогда
			//	Продолжить;
			//КонецЕсли;	
			
			Результат.Вставить(ПолеКомпоновки.Поле, ПолеКомпоновки.Значение);
			
		КонецЦикла;	
		
	КонецЦикла;	
	
	Возврат Результат;
	
КонецФункции

&НаСервереБезКонтекста 
Процедура ЗаполнитьМассивРодителей(МассивРодителей, Родители)
	
	Для каждого Родитель из Родители Цикл
		
		Если ТипЗнч(Родитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
			МассивРодителей.Добавить(Родитель.ПолучитьПоля());
			
		ИначеЕсли ТипЗнч(Родитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
			
		КонецЕсли;	
		
		Родители = Родитель.ПолучитьРодителей();
		Если Родители.Количество() > 0 Тогда
			ЗаполнитьМассивРодителей(МассивРодителей, Родители);
		КонецЕсли;	
		
	КонецЦикла;	

КонецПроцедуры	

Возвращает сумму значений в поле [ИмяПоля] всех элементов коллекции

Автор: HostHost

FastCode 64 8
УчетСреднегоЗаработкаКлиентСервер.ИтогиПоПолю(Коллекция, ИмяПоля)

Условное оформление на обычных формах (ОФ)

Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    ОформлениеСтроки.Ячейки.Отгружен.ЦветФона = ?(ДанныеСтроки.Отгружен, WebЦвета.СветлоРозовый, WebЦвета.БледноБирюзовый);
КонецПроцедуры

Заполняем (описываем набор данных и поля) схему компоновки данных из таблицы значений

SDV 34 7
// Функция - Схема компоновки данных из таблицы значений
//  Формирует Схему компоновки, добавляет туда НаборДанных заполненный в соответствии
//  с колонками Таблицы.
//  Использование: открываю эту Схему конструктором, поднастраиваю и сохраняю в xml.
//   Избавляет от необходимости вручную описывать Поля и их Типы
//
// Параметры:
//  Таблица           - ТаблицаЗначений - Обязательно с определенными типами колонок.
//      Можно использовать ТипизированнаяТаблицаЗначений()
//  Наименование - Строка - Название будущего набора данных
//
// Возвращаемое значение:
//  СхемаКомпоновкиДанных
//
// Пример:
//  Схема = СхемаКомпоновкиДанныхИзТаблицыЗначений(Таблица, "Звонки");
//  Конструктор = Новый КонструкторСхемыКомпоновкиДанных(Схема);
//  Конструктор.Редактировать(ЭтаФорма);
//
Функция СхемаКомпоновкиДанныхИзТаблицыЗначений(Таблица, Наименование) Экспорт
     Схема = Новый СхемаКомпоновкиДанных;
     //Схема.ИсточникиДанных
     Источник = Схема.ИсточникиДанных.Добавить();
     Источник.Имя = "ИсточникДанных";
     Источник.СтрокаСоединения = "";
     Источник.ТипИсточникаДанных = "Local";

     НаборДанных = НаборДанныхИзТаблицыЗначений(Схема, Таблица, Наименование);
     Возврат Схема;
КонецФункции


// Функция - Набор данных из таблицы значений
//     Добавляет НаборДанных в Схему, создаёт поля соответствующие колонкам Таблицы
//     Памятка: чтобы подсунуть Таблицу используй ПриКомпоновкеРезультата()
//     ПроцессорКомпоновкиДанных.Инициализировать(..., НаборыДанных , ..., ...);
//
// Параметры:
//  Схема           - СхемаКомпоновкиДанных
//  Таблица           - ТаблицаЗначений - Обязательно с определенными типами колонок.
//      Можно использовать ТипизированнаяТаблицаЗначений().
//  Наименование - Строка - Название будущего набора данных
//
// Возвращаемое значение:
//  НаборДанныхОбъектСхемыКомпоновкиДанных
//
Функция НаборДанныхИзТаблицыЗначений(Схема, Таблица, Наименование) Экспорт
     
     //Схема = Новый СхемаКомпоновкиДанных; //Убрать
     НаборДанных = Схема.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
     НаборДанных.Имя = Наименование;
     НаборДанных.ИмяОбъекта = Наименование;
     НаборДанных.ИсточникДанных = Схема.ИсточникиДанных[0].Имя;
     //НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина;
     
     Для Каждого Колонка Из Таблица.Колонки Цикл
          ДобавленноеПоле = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
          ДобавленноеПоле.Заголовок = Колонка.Имя;
          ДобавленноеПоле.ПутьКДанным = Колонка.Имя;
          ДобавленноеПоле.Поле = Колонка.Имя;
          ДобавленноеПоле.ТипЗначения = Новый ОписаниеТипов(Колонка.ТипЗначения);
     КонецЦикла;

     Возврат НаборДанных;
          
КонецФункции

Ход конем

Определить количество и поля клеток, доставаемых конем, в зависимости от его положения на доске

Автор: ildarovich

FastCode 64 8
ВЫБРАТЬ 1 у, "a" х
ПОМЕСТИТЬ а
ОБЪЕДИНИТЬ ВЫБРАТЬ 2, "b"
ОБЪЕДИНИТЬ ВЫБРАТЬ 3, "c"
ОБЪЕДИНИТЬ ВЫБРАТЬ 4, "d"
ОБЪЕДИНИТЬ ВЫБРАТЬ 5, "e"
ОБЪЕДИНИТЬ ВЫБРАТЬ 6, "f"
ОБЪЕДИНИТЬ ВЫБРАТЬ 7, "g"
ОБЪЕДИНИТЬ ВЫБРАТЬ 8, "h"
;
ВЫБРАТЬ г.х, д.у
ИЗ а а, а г, а д
ГДЕ а.х = &ах И (а.у - г.у) * (а.у - г.у) + (&бу - д.у) * (&бу - д.у) = 5

Добавить вертикальную черту к началу каждой строчки в тексте

Полезно, если надо перенести SQL запрос в код 1С и для прочих подобных ситуаций. В обработку добавить реквизиты "ТекстИсходный", "ТекстФорматированный". Вид полей формы "Поле текстового документа".
ChOP 27 5
&НаКлиенте
Процедура Форматировать(Команда)
	
	ТекстИсходный = СокрЛП(ТекстИсходный);
	ТекстФорматированный = "";
	
	Для Индекс = 1 По СтрЧислоСтрок(ТекстИсходный) Цикл
		
		ТекстФорматированный = ТекстФорматированный + "|" + СтрПолучитьСтроку(ТекстИсходный,Индекс) + Символы.ПС;
		
	КонецЦикла;
	
	ТекстФорматированный = СокрЛП(ТекстФорматированный);
	
КонецПроцедуры

Конвертация даты из формата ISO8601 в дату 1С с учетом миллисекунд

Возвращает структуру с полями "Дата" и "Миллисекунды", стандартный способ преобразования даты округляет время, а в некоторых случаях важна особая точность
Функция КонвертироватьДатуISO8601ВДату(Дата) Экспорт

	КонвертированнаяДата = Новый Структура("Дата, Миллисекунды");
	
	АвтоконвертированнаяДата = XMLЗначение(Тип("Дата"), Дата);

	Миллисекунды = Сред(Дата, 21);
	Миллисекунды = СокрЛП(СтрЗаменить(Миллисекунды, "Z", ""));

	Если НЕ ПустаяСтрока(Миллисекунды) Тогда
		
		ЧислоМиллисекунд = Число(Миллисекунды);
		
		Если ЧислоМиллисекунд >= 500 Тогда
			
			АвтоконвертированнаяДата = АвтоконвертированнаяДата - 1;
			
		КонецЕсли;
		
	КонецЕсли;
	
	КонвертированнаяДата.Дата = АвтоконвертированнаяДата;
	
	КонвертированнаяДата.Миллисекунды = Миллисекунды;
	
	Возврат КонвертированнаяДата;

КонецФункции 

Оформление (раскраска) строки табличной части обычной формы по условию, при получении данных

Событие ПриПолученииДанных используется для оформления ячеек строк данных, отображаемых табличным полем. В нем можно оформить или раскрасить строку, в зависимости от данных.
pkonev 1
Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
		
	Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
			
		Если ОформлениеСтроки.ДанныеСтроки.Товар.Уценен Тогда
			ОформлениеСтроки.Ячейки.Комментарий.УстановитьТекст("Уценка");
			ОформлениеСтроки.Ячейки.Комментарий.ЦветФона = Новый Цвет(255, 255, 128);
			ОформлениеСтроки.Ячейки.Комментарий.ЦветТекста = Новый Цвет(0, 0, 0);
			ОформлениеСтроки.Ячейки.Комментарий.ТолькоПросмотр = Истина;
		КонецЕсли;
				
		//ОформлениеСтроки.ЦветФона = Новый Цвет(255, 255, 128);
		//ОформлениеСтроки.ЦветТекста = Новый Цвет(0, 0, 0);
						
	КонецЦикла;
	
КонецПроцедуры

Найти количество повторяющихся подряд по дням записей

Например, имеются данные из двух полей "Дата" и "Явка": 1/ДА, 2/ДА, 3/ДА, 4/НЕТ, 5/НЕТ, 6/ДА, 7/НЕТ. Нужно получить таблицу из кол-ва повторяющихся подряд "Дата", "Явка", "РазПодряд".

Автор: ildarovich

FastCode 64 8
ВЫБРАТЬ
    Дано.Дата,
    МИНИМУМ(Дано.Явка) КАК Явка,
    РАЗНОСТЬДАТ(ЕСТЬNULL(МАКСИМУМ(ВЫБОР
                    КОГДА Раньше.Явка <> Дано.Явка
                        ТОГДА Раньше.Дата
                КОНЕЦ), ДОБАВИТЬКДАТЕ(МИНИМУМ(Раньше.Дата), ДЕНЬ, -1)), Дано.Дата, ДЕНЬ) КАК РазПодряд
ИЗ
    Дано КАК Дано
        ЛЕВОЕ СОЕДИНЕНИЕ Дано КАК Раньше
        ПО (Раньше.Дата <= Дано.Дата)

СГРУППИРОВАТЬ ПО
    Дано.Дата
УПОРЯДОЧИТЬ ПО
    Дано.Дата

Заполнить параметры запроса из структуры

Кусок кода с заполнением параметров запроса из структуры с именами полей равных именам параметров. Позволяет заполнять запроса с неизвестным составом параметров из структуры, где добавлены все возможные параметры
СергейТ 9 1
//пПараметрыЗапроса - структура с данными для запроса
ПараметрыЗапроса=Запрос.НайтиПараметры();
Для Каждого ПараметрЗапроса Из пПараметрыЗапроса Цикл
	Если ПараметрыЗапроса.Найти(ПараметрЗапроса.Ключ)<>Неопределено Тогда
		Запрос.УстановитьПараметр(ПараметрЗапроса.Ключ, ПараметрЗапроса.Значение)
	КонецЕсли
КонецЦикла;

Downloader 1C

Консольное приложение для подготовки библиотеки дистрибутива 1С
Бесплатно

OneCIBasesCreator

Мини сервис по созданию файла со списком баз 1С (*v8i) на основании файла с настройками сервера (1CV8Clst.lst)
Бесплатно

Интеграция 1С и Битрикс 24 через расширения. Курс

Разработка модуля интеграции ведется полностью в расширении, что позволит вам добавлять его даже в 1С:Fresh.
-10%

FastCode - бесплатный сервис для программистов 1С

Огромная база полезных шаблонов кода, статьи, курсы, интересные разработки, поиск по БСП, ответы на вопросы, помощь сообщества разработчиков. Клиент для поиска прямо в Конфигураторе!
bolsun
Бесплатно

Навигация

В поставке 12 скриптов для быстрой навигации (навигатор по метаданным, менеджер окон, улучшенные процедуры и функции, переход к определению по Ctrl+Click, каталог файлов, все подписки на события, ToDo навигатор, быстрый выбор типа данных, фильтр по главам Синтакс-помощника и др.
Бесплатно

TurboConf Клиент

Программа TurboConf Клиент расширяет возможности конфигуратора. Добавляет "ТурбоПоиск", который ищет сразу по нескольким источникам данных: сервису FastCode, библиотеке стандартных подсистем (БСП) и каталогу разработок TurboStore.
Бесплатно

Турбо поиск

В поставке: Поиск по сервису FastCode, поиск по БСП, поиск по TurboStore, поиск в Google и Яндекс, глобальный поиск по файлам конфигурации, расширенный поиск по текущему модулю
Бесплатно

TurboConf - расширение Конфигуратора 1С

TurboConf повышает эффективность работы в Конфигураторе 1С и помогает программисту автоматизировать свои задачи.
bolsun
5 000 руб.