Публикации

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

OneCIBasesCreator

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

Открытие формы с последующим вызовом формы завершения

Автор: HostHost

2 FastCode 10 1
ОткрытьФорму("Справочник.Сотрудники.Форма.ФормаЭлемента",,ЭтотОбъект,,,, Новый ОписаниеОповещения("ЗагрузитьИзExcelЗавершение", ЭтотОбъект), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

OneTracker - трекер учета рабочего времени программиста 1С Промо

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

Сведения о внешней обработке

Автоматическое заполнение сведений о внешней обработки для отчета
5 reborn85 8 1

#Область ОсновныеНастройкиДляПодключения
//не забываем заполнять Обработка->Действия->Свойства->ХранилищеВариантовОтчетов
Функция ВернутьСтруктуруПараметров()
	
	Структура = Новый Структура();
	Структура.Вставить("Документ","");
	Структура.Вставить("Представление",ЭтотОбъект.Метаданные().Представление());
	Структура.Вставить("Наименование",ЭтотОбъект.Метаданные().Синоним);
	Структура.Вставить("Идентификатор",ЭтотОбъект.Метаданные().Имя);
	Структура.Вставить("Версия","1.0.0.0");
	Возврат Структура;	
	
КонецФункции 

Функция СведенияОВнешнейОбработке() ЭКСПОРТ
	
	ПараметрыОбработки = ВернутьСтруктуруПараметров();
	
	Сведения = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	Сведения.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
	Сведения.Наименование = ПараметрыОбработки.Наименование;
	
	стр = Сведения.Команды.Добавить();
	стр.Представление = ПараметрыОбработки.Представление;
	стр.Идентификатор = ПараметрыОбработки.Идентификатор;
	стр.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	
	Возврат Сведения;
	
КонецФункции
#КонецОбласти

Язык выражений СКД Формат()

Коллеги, подскажите пожалуйста, почему не отрабатывает Формат()? 2020-05-24_16-26-07.jpg Читать дальше
SDV 26 5

Генератор случайных символов

В данном примере показано, как можно сгенерировать строку длинной в 6 символов, состоящие из цифр, маленьких и больших букв латиницы. !Особенность.Если ТекущаяУниверсальнаяДатаВМиллисекундах() вернет 2 и более одинаковых числа (т.е. сервер настолько быстрый, что 2 и более операции произошли в рамках 1 миллисекунды), будут сгенерированы 2 и более одинаковых "случайных числа".
1 ChOP 16 2
Процедура КнопкаСгенерировать()    
    Для Сч = 1 по 100 Цикл
        Сообщить(ГенерацияСлучайногоСимвола(ТекущаяУниверсальнаяДатаВМиллисекундах()));
    КонецЦикла;   
КонецПроцедуры

Функция ГенерацияСлучайногоСимвола(Счетчик)
    ГСЧ = Новый ГенераторСлучайныхЧисел(Счетчик);    
    СлучайнаяСтрока = "";
    // генерируем случайное число из 6-ти символов, например "d0c8Yf"
    Для Сч = 1 по 6 Цикл        
        Набор = ГСЧ.СлучайноеЧисло(1,3);    
        Если Набор = 1 Тогда
            // это число
            СлучайныйСимвол = ГСЧ.СлучайноеЧисло(0,9);    
        ИначеЕсли Набор = 2 Тогда
            // это Большая буква латиницы
            СлучайныйСимвол = Символ(ГСЧ.СлучайноеЧисло(65,90));
        ИначеЕсли Набор = 3 Тогда
            // это маленькая буква латиницы
            СлучайныйСимвол = Символ(ГСЧ.СлучайноеЧисло(97,122));
        КонецЕсли;
        СлучайнаяСтрока = СлучайнаяСтрока + СлучайныйСимвол;
    КонецЦикла;      
    Возврат(СлучайнаяСтрока);    
КонецФункции

Создать временную таблицу по имени регистра СрезПоследних

Автор: HostHost

FastCode 10 1
// 1.

ОписаниеФильтра = ЗарплатаКадрыОбщиеНаборыДанных.ОписаниеФильтраДляСоздатьВТИмяРегистра("ВТСотрудникиПериоды","Сотрудник");

ОписаниеФильтра.СоответствиеИзмеренийРегистраИзмерениямФильтра.Вставить("Период", "Период");

ОписаниеФильтра.СоответствиеИзмеренийРегистраИзмерениямФильтра.Вставить("Сотрудник", "Сотрудник");

ЗарплатаКадрыОбщиеНаборыДанных.СоздатьВТИмяРегистраСрезПоследних(

        "ГрафикРаботыСотрудников",

        МенеджерВременныхТаблиц,

        Истина,

        ОписаниеФильтра,, "ВТГрафики");

// 2.

ОписаниеФильтра = ЗарплатаКадрыПериодическиеРегистры.ОписаниеФильтраДляСоздатьВТИмяРегистра("ВТФильтрПозиции", "Позиция");   

ПараметрыПостроения = ЗарплатаКадрыПериодическиеРегистры.ПараметрыПостроенияДляСоздатьВТИмяРегистраСрез();

ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор(ПараметрыПостроения.Отборы, "Позиция", "<>", Справочники.ШтатноеРасписание.ПустаяСсылка());

ПоказателиПремий = Новый Массив;

ПоказателиПремий.Добавить(Справочники.ПоказателиРасчетаЗарплаты.НайтиПоРеквизиту("Идентификатор", "ПроцентПпремииПроизводственной"));

ПоказателиПремий.Добавить(Справочники.ПоказателиРасчетаЗарплаты.НайтиПоРеквизиту("Идентификатор", "ПроцентГодовойПремии"));

ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор(ПараметрыПостроения.Отборы, "Показатель", "В", ПоказателиПремий);

ЗарплатаКадрыПериодическиеРегистры.СоздатьВТИмяРегистраСрезПоследних("ЗначенияПлановыхПоказателейРасчетаЗП", МенеджерВТ, Истина, ОписаниеФильтра, ПараметрыПостроения, "ВТЗначенияПлановыхПоказателейРасчетаЗП");

Предупреждение на сервере

Автор: HostHost

1 FastCode 10 1
ШаблонПредупреждения = НСтр("ru='Текст сообщения ""%1"".'");

ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(

        ШаблонПредупреждения,

        СтрокаСотрудника.Сотрудник);

ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстПредупреждения);

Создать временную таблицу из таблицы значений

Автор: HostHost

FastCode 10 1
ЗарплатаКадры.СоздатьВТПоТаблицеЗначений(Запрос.МенеджерВременныхТаблиц, ТаблицаМВО, "ВТМВО", Истина);

Срезы последних (интерполяция периодических сведений)

"Срезы последних" - одна из первых задач, на которой спотыкается начинающий программист 1С. Хорошо поняв идею виртуального регистра "Срез последних", мы ожидаем такой же простоты, если задана не одна дата, на которую нужно выбрать сведения, а несколько. Но... Читать дальше
FastCode 10 1

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

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

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


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

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