Добавлены статьи
This commit is contained in:
parent
684daa47a4
commit
97584b4baa
@ -16,6 +16,7 @@
|
|||||||
`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent`
|
`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent`
|
||||||
|
|
||||||
3. Найдите параметр `ImagePath`, откройте его и в конец строки **добавьте пробел и флаг `–debug`**.
|
3. Найдите параметр `ImagePath`, откройте его и в конец строки **добавьте пробел и флаг `–debug`**.
|
||||||
|
3.1. Если нужно включить HTTP-отладку, то дальше добавляем флаг `-http` (т.е. получится строка `-debug -http`)
|
||||||
|
|
||||||
4. Нажмите **OK**.
|
4. Нажмите **OK**.
|
||||||
|
|
||||||
|
@ -0,0 +1,110 @@
|
|||||||
|
# 🛠 Установка Apache HTTP Server на Windows
|
||||||
|
|
||||||
|
Полная пошаговая инструкция по установке и настройке веб-сервера Apache на Windows.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📥 Шаг 1: Загрузка Apache
|
||||||
|
|
||||||
|
1. Перейдите на официальный сайт [Apache Lounge](https://www.apachelounge.com/download/).
|
||||||
|
2. Скачайте последнюю версию `httpd` для Windows (обычно архив `.zip`).
|
||||||
|
3. Рекомендуется скачивать версию с поддержкой `VC` (Visual C++), совместимую с вашей системой (например, VC15/VS16).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 Шаг 2: Распаковка архива
|
||||||
|
|
||||||
|
1. Распакуйте архив в удобную директорию, например:
|
||||||
|
|
||||||
|
```
|
||||||
|
C:\Apache24
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Убедитесь, что структура папок содержит:
|
||||||
|
|
||||||
|
```
|
||||||
|
C:\Apache24\bin
|
||||||
|
C:\Apache24\conf
|
||||||
|
C:\Apache24\htdocs
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 Шаг 3: Установка Visual C++ Redistributable
|
||||||
|
|
||||||
|
Для запуска Apache требуется соответствующий **Visual C++ Redistributable**.
|
||||||
|
|
||||||
|
1. Перейдите на сайт Microsoft: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
|
||||||
|
2. Скачайте и установите подходящий пакет (`x64` и/или `x86` в зависимости от вашей системы).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ Шаг 4: Первоначальная настройка
|
||||||
|
|
||||||
|
1. Перейдите в директорию `conf` и откройте `httpd.conf`.
|
||||||
|
2. Убедитесь, что в строке `ServerRoot` указан правильный путь:
|
||||||
|
|
||||||
|
```
|
||||||
|
ServerRoot "C:/Apache24"
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Измените строку `DocumentRoot` на нужную папку, например:
|
||||||
|
|
||||||
|
```
|
||||||
|
DocumentRoot "C:/Apache24/htdocs"
|
||||||
|
<Directory "C:/Apache24/htdocs">
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Установите `ServerName`:
|
||||||
|
|
||||||
|
```
|
||||||
|
ServerName localhost:80
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ▶️ Шаг 5: Запуск Apache вручную
|
||||||
|
|
||||||
|
Откройте командную строку от имени администратора и выполните:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd C:\Apache24\bin
|
||||||
|
httpd.exe
|
||||||
|
```
|
||||||
|
|
||||||
|
Если всё настроено правильно, в браузере перейдите на [http://localhost](http://localhost) — должна отобразиться стартовая страница Apache.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠 Шаг 6: Установка Apache как службы Windows
|
||||||
|
|
||||||
|
1. Откройте командную строку от имени администратора.
|
||||||
|
2. Выполните команду:
|
||||||
|
|
||||||
|
```
|
||||||
|
httpd.exe -k install
|
||||||
|
```
|
||||||
|
|
||||||
|
3. После этого Apache появится в списке служб Windows. Его можно запускать и останавливать через `services.msc`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚫 Шаг 7: Устранение возможных ошибок
|
||||||
|
|
||||||
|
- **Порт 80 занят:** Измените порт в конфигурации `httpd.conf`:
|
||||||
|
```
|
||||||
|
Listen 8080
|
||||||
|
```
|
||||||
|
и перезапустите Apache.
|
||||||
|
|
||||||
|
- **Ошибки конфигурации:** Проверьте конфигурацию с помощью:
|
||||||
|
```
|
||||||
|
httpd.exe -t
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ Готово!
|
||||||
|
|
||||||
|
Теперь Apache установлен, работает как служба и готов обслуживать веб-сайты. Размещайте ваши HTML/PHP-файлы в папке `htdocs` или настройте виртуальные хосты.
|
@ -0,0 +1,3 @@
|
|||||||
|
```bsl
|
||||||
|
СведенияОПроверке = РегистрыСведений.СтатусыПроверкиДокументов.ПолучитьДанныеПроверкиДокумента(СсылкаНаДокумент);
|
||||||
|
```
|
@ -0,0 +1,65 @@
|
|||||||
|
---
|
||||||
|
title: Программное указание серий в документе "Перемещение товаров"
|
||||||
|
---
|
||||||
|
|
||||||
|
Для программного заполнения документа номенклатурой, оприходованной по сериям, нужно в документе `ПеремещениеТоваров` заполнить 2 табличные части - `Товары` и `Серии`.
|
||||||
|
|
||||||
|
После заполнения этих табличных частей необходимо их согласовать. Для этого выполняются следующие методы:
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(НовыйДокумент, Документы.ПеремещениеТоваров);
|
||||||
|
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(НовыйДокумент, ПараметрыУказанияСерий);
|
||||||
|
```
|
||||||
|
### Пример
|
||||||
|
```bsl
|
||||||
|
&НаСервереБезКонтекста
|
||||||
|
Процедура СоздатьДокументПеремещенияНаСервере(СписаниеТоваров, ДокументПеремещение = Неопределено)
|
||||||
|
|
||||||
|
СписаниеОбъект = СписаниеТоваров.ПолучитьОбъект();
|
||||||
|
|
||||||
|
НовыйДокумент = Документы.ПеремещениеТоваров.СоздатьДокумент();
|
||||||
|
...
|
||||||
|
// Инициализация
|
||||||
|
...
|
||||||
|
|
||||||
|
// Заполняем номенклатуру
|
||||||
|
Для Каждого Строка Из СписаниеОбъект.СписокНоменклатуры Цикл
|
||||||
|
|
||||||
|
СтрокаТовары = НовыйДокумент.Товары.Добавить();
|
||||||
|
СтрокаТовары.Номенклатура = Строка.Номенклатура;
|
||||||
|
СтрокаТовары.Количество = Строка.Количество;
|
||||||
|
СтрокаТовары.КоличествоУпаковок = Строка.Количество;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
// заполняем серии
|
||||||
|
Для Каждого Строка Из СписаниеОбъект.СписокНоменклатуры Цикл
|
||||||
|
Если ЗначениеЗаполнено(Строка.Серия) Тогда
|
||||||
|
ПараметрыОтбора = Новый Структура;
|
||||||
|
ПараметрыОтбора.Вставить("Серия", Строка.Серия);
|
||||||
|
ПараметрыОтбора.Вставить("Номенклатура", Строка.Номенклатура);
|
||||||
|
ПараметрыОтбора.Вставить("Характеристика", Строка.Характеристика);
|
||||||
|
ПараметрыОтбора.Вставить("Назначение", Строка.Назначение);
|
||||||
|
НайденныеСтроки = НовыйДокумент.Серии.НайтиСтроки(ПараметрыОтбора);
|
||||||
|
|
||||||
|
Если НайденныеСтроки.Количество() > 0 Тогда
|
||||||
|
СтрокаСерии = НайденныеСтроки.Получить(0);
|
||||||
|
СтрокаСерии.Количество = СтрокаСерии.Количество + Строка.Количество;
|
||||||
|
Иначе
|
||||||
|
СтрокаСерии = НовыйДокумент.Серии.Добавить();
|
||||||
|
ЗаполнитьЗначенияСвойств(СтрокаСерии, ПараметрыОтбора);
|
||||||
|
СтрокаСерии.НазначениеОтправителя = Строка.Назначение;
|
||||||
|
СтрокаСерии.Количество = Строка.Количество;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
// волшебство
|
||||||
|
ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(НовыйДокумент, Документы, ПеремещениеТоваров);
|
||||||
|
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(НовыйДокумент, ПараметрыУказанияСерий);
|
||||||
|
|
||||||
|
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,51 @@
|
|||||||
|
Механизм **представлений** позволяет строить "неявный" запрос, который затем преобразуется встроенными функциями ЗУП в готовый запрос для исполнения
|
||||||
|
Примеры работы с механизмом можно посмотреть на Инфостарте: [Готовые механизмы 1С: ЗУП, представления](https://infostart.ru/1c/articles/1544167/)
|
||||||
|
|
||||||
|
## Пример запроса
|
||||||
|
```bsl
|
||||||
|
ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||||||
|
Сотрудники.Ссылка КАК Сотрудник,
|
||||||
|
&ДатаОстатков КАК Период
|
||||||
|
ПОМЕСТИТЬ ВТСотрудники
|
||||||
|
ИЗ
|
||||||
|
Справочник.Сотрудники КАК Сотрудники
|
||||||
|
ГДЕ
|
||||||
|
НЕ Сотрудники.ВАрхиве
|
||||||
|
;
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||||||
|
ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник,
|
||||||
|
ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация
|
||||||
|
ПОМЕСТИТЬ Представления_КадровыеДанныеСотрудников
|
||||||
|
ИЗ
|
||||||
|
ВТСотрудники КАК Сотрудники
|
||||||
|
;
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
ВЫБРАТЬ
|
||||||
|
Представления_КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
|
||||||
|
Представления_КадровыеДанныеСотрудников.Организация КАК Организация
|
||||||
|
ИЗ
|
||||||
|
Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
|
||||||
|
```
|
||||||
|
|
||||||
|
## Преобразование запроса
|
||||||
|
### В системе компоновки данных
|
||||||
|
В отчете необходимо прописать `ПриКомпоновкеРезультата`:
|
||||||
|
```bsl
|
||||||
|
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
|
||||||
|
|
||||||
|
ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета(ЭтотОбъект);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
### В иных местах
|
||||||
|
```bsl
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст = "......"; // текст запроса, построенный через механизм представлений
|
||||||
|
Запрос.УстановитьПараметр([Свои параметры]);
|
||||||
|
//Далее запрос-пустышка преобразуется в нормальный
|
||||||
|
ЗарплатаКадрыОбщиеНаборыДанных.ЗаменитьЗапросыКПредставлениямВиртуальныхТаблиц(Запрос.Текст, Запрос);
|
||||||
|
Запрос.Выполнить();
|
||||||
|
```
|
@ -0,0 +1,400 @@
|
|||||||
|
---
|
||||||
|
title: Список возможных ключей параметра "Кадровые данные"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Реквизиты справочников
|
||||||
|
Имена всех реквизитов справочника Сотрудники.
|
||||||
|
Имена всех реквизитов справочника ФизическиеЛица.
|
||||||
|
|
||||||
|
## Контактная информация физического лица
|
||||||
|
АдресДляИнформирования
|
||||||
|
АдресДляИнформированияПредставление.
|
||||||
|
АдресЗаПределамиРФ
|
||||||
|
АдресЗаПределамиРФПредставление.
|
||||||
|
АдресМестаПроживания
|
||||||
|
АдресМестаПроживанияПредставление.
|
||||||
|
АдресПоПрописке
|
||||||
|
АдресПоПропискеПредставление.
|
||||||
|
ТелефонДомашний
|
||||||
|
ТелефонДомашнийПредставление.
|
||||||
|
ТелефонРабочий
|
||||||
|
ТелефонРабочийПредставление.
|
||||||
|
ТелефонМобильный
|
||||||
|
ТелефонМобильныйПредставление.
|
||||||
|
EMail
|
||||||
|
EMailПредставление
|
||||||
|
|
||||||
|
## Образования физических лиц:
|
||||||
|
Образование1УчебноеЗаведение
|
||||||
|
Образование1ВидОбразования
|
||||||
|
Образование1Специальность
|
||||||
|
Образование1Начало
|
||||||
|
Образование1Окончание
|
||||||
|
Образование1ВидДокумента
|
||||||
|
Образование1Серия
|
||||||
|
Образование1Номер
|
||||||
|
Образование1ДатаВыдачи
|
||||||
|
Образование1Квалификация
|
||||||
|
Образование2УчебноеЗаведение
|
||||||
|
Образование2ВидОбразования
|
||||||
|
Образование2Специальность
|
||||||
|
Образование2Начало
|
||||||
|
Образование2Окончание
|
||||||
|
Образование2ВидДокумента
|
||||||
|
Образование2Серия
|
||||||
|
Образование2Номер
|
||||||
|
Образование2ДатаВыдачи
|
||||||
|
Образование2Квалификация
|
||||||
|
ВысшееОбразованиеУчебноеЗаведение
|
||||||
|
ВысшееОбразованиеСпециальность
|
||||||
|
ВысшееОбразованиеНачало
|
||||||
|
ВысшееОбразованиеОкончание
|
||||||
|
ВысшееОбразованиеВидДокумента
|
||||||
|
ВысшееОбразованиеСерия
|
||||||
|
ВысшееОбразованиеНомер
|
||||||
|
ВысшееОбразованиеДатаВыдачи
|
||||||
|
ВысшееОбразованиеКвалификация
|
||||||
|
ПослевузовскоеОбразованиеУчебноеЗаведение
|
||||||
|
ПослевузовскоеОбразованиеВидОбразования
|
||||||
|
ПослевузовскоеОбразованиеВидПослевузовскогоОбразования
|
||||||
|
ПослевузовскоеОбразованиеСпециальность
|
||||||
|
ПослевузовскоеОбразованиеНачало
|
||||||
|
ПослевузовскоеОбразованиеОкончание
|
||||||
|
ПослевузовскоеОбразованиеВидДокумента
|
||||||
|
ПослевузовскоеОбразованиеСерия
|
||||||
|
ПослевузовскоеОбразованиеНомер
|
||||||
|
ПослевузовскоеОбразованиеДатаВыдачи
|
||||||
|
ПослевузовскоеОбразованиеКвалификация
|
||||||
|
|
||||||
|
## Ученые степени физических лиц:
|
||||||
|
УченаяСтепень
|
||||||
|
УченаяСтепеньОтрасльНауки
|
||||||
|
УченаяСтепеньДатаПрисуждения
|
||||||
|
УченаяСтепеньДиссертационныйСовет
|
||||||
|
УченаяСтепеньДипломСерияНомер
|
||||||
|
УченаяСтепеньОрганизация
|
||||||
|
|
||||||
|
## Ученые звания физических лиц:
|
||||||
|
УченоеЗвание
|
||||||
|
УченоеЗваниеАттестатСерия
|
||||||
|
УченоеЗваниеАттестатНомер
|
||||||
|
УченоеЗваниеДатаПрисвоения
|
||||||
|
УченоеЗваниеОрганизация
|
||||||
|
УченоеЗваниеСпециальность
|
||||||
|
|
||||||
|
## Знание языков
|
||||||
|
ВладеемыйЯзык1
|
||||||
|
ВладеемыйЯзык1СтепеньЗнания
|
||||||
|
ВладеемыйЯзык2
|
||||||
|
ВладеемыйЯзык2СтепеньЗнания
|
||||||
|
|
||||||
|
## Профессии физических лиц
|
||||||
|
Профессия1
|
||||||
|
Профессия2
|
||||||
|
|
||||||
|
## Строковые сведения физических лиц
|
||||||
|
ПолученныеОбразования
|
||||||
|
Награды
|
||||||
|
Документы
|
||||||
|
ЗнанияЯзыков
|
||||||
|
Профессии
|
||||||
|
Специальности
|
||||||
|
ТрудоваяДеятельность
|
||||||
|
СоставСемьи
|
||||||
|
ПовышениеКвалификации
|
||||||
|
Переподготовка
|
||||||
|
|
||||||
|
## Сведения о государственном служащем
|
||||||
|
ВключаетсяВРеестрГосслужащих
|
||||||
|
ЛичныйРеестровыйНомер
|
||||||
|
СпособПоступленияНаСлужбу
|
||||||
|
|
||||||
|
## Информация о гражданстве
|
||||||
|
ГражданствоПериодРегистрации
|
||||||
|
Страна
|
||||||
|
ИННВСтранеГражданства
|
||||||
|
|
||||||
|
## Информация о документе, удостоверяющем личность
|
||||||
|
ДокументПериодРегистрации
|
||||||
|
ДокументВид
|
||||||
|
ДокументКодМВД
|
||||||
|
ДокументСерия
|
||||||
|
ДокументНомер
|
||||||
|
ДокументДатаВыдачи
|
||||||
|
ДокументСрокДействия
|
||||||
|
ДокументКемВыдан
|
||||||
|
ДокументКодПодразделения
|
||||||
|
ДокументСтранаВыдачи
|
||||||
|
ДокументПредставление
|
||||||
|
|
||||||
|
## Информация о фамилии, имени, отчестве
|
||||||
|
ФИОПериодРегистрации
|
||||||
|
Фамилия
|
||||||
|
Имя
|
||||||
|
Отчество
|
||||||
|
ФИОПолные
|
||||||
|
ФамилияИО
|
||||||
|
ИОФамилия
|
||||||
|
Инициалы
|
||||||
|
|
||||||
|
## Сведения о стажах
|
||||||
|
ОбщийСтажВид
|
||||||
|
ОбщийСтажПериодРегистрации
|
||||||
|
ОбщийСтажРазмерДней
|
||||||
|
ОбщийСтажРазмерМесяцев
|
||||||
|
ОбщийСтажДней
|
||||||
|
ОбщийСтажМесяцев
|
||||||
|
ОбщийСтажЛет
|
||||||
|
СеверныйСтажВид
|
||||||
|
СеверныйСтажПериодРегистрации
|
||||||
|
СеверныйСтажРазмерДней
|
||||||
|
СеверныйСтажРазмерМесяцев
|
||||||
|
СеверныйСтажДней
|
||||||
|
СеверныйСтажМесяцев
|
||||||
|
СеверныйСтажЛет.
|
||||||
|
НепрерывныйСтажВид
|
||||||
|
НепрерывныйСтажПериодРегистрации
|
||||||
|
НепрерывныйСтажРазмерДней
|
||||||
|
НепрерывныйСтажРазмерМесяцев
|
||||||
|
НепрерывныйСтажДней
|
||||||
|
НепрерывныйСтажМесяцев
|
||||||
|
НепрерывныйСтажЛет.
|
||||||
|
СтажНаНадбавкуЗаВыслугуЛетВид
|
||||||
|
СтажНаНадбавкуЗаВыслугуЛетПериодРегистрации
|
||||||
|
СтажНаНадбавкуЗаВыслугуЛетРазмерДней
|
||||||
|
СтажНаНадбавкуЗаВыслугуЛетРазмерМесяцев
|
||||||
|
СтажНаНадбавкуЗаВыслугуЛетДней
|
||||||
|
СтажНаНадбавкуЗаВыслугуЛетМесяцев
|
||||||
|
СтажНаНадбавкуЗаВыслугуЛетЛет.
|
||||||
|
ОбщийНаучноПедагогическийСтажВид
|
||||||
|
ОбщийНаучноПедагогическийСтажПериодРегистрации
|
||||||
|
ОбщийНаучноПедагогическийСтажРазмерДней
|
||||||
|
ОбщийНаучноПедагогическийСтажРазмерМесяцев
|
||||||
|
ОбщийНаучноПедагогическийСтажДней
|
||||||
|
ОбщийНаучноПедагогическийСтажМесяцев
|
||||||
|
ОбщийНаучноПедагогическийСтажЛет.
|
||||||
|
ПедагогическийСтажВид
|
||||||
|
ПедагогическийСтажПериодРегистрации
|
||||||
|
ПедагогическийСтажРазмерДней
|
||||||
|
ПедагогическийСтажРазмерМесяцев
|
||||||
|
ПедагогическийСтажДней
|
||||||
|
ПедагогическийСтажМесяцев
|
||||||
|
ПедагогическийСтажЛет.
|
||||||
|
СтраховойСтажВид
|
||||||
|
СтраховойСтажПериодРегистрации
|
||||||
|
СтраховойСтажРазмерДней
|
||||||
|
СтраховойСтажРазмерМесяцев
|
||||||
|
СтраховойСтажДней
|
||||||
|
СтраховойСтажМесяцев
|
||||||
|
СтраховойСтажЛет.
|
||||||
|
РасширенныйСтраховойСтажВид
|
||||||
|
РасширенныйСтраховойСтажПериодРегистрации
|
||||||
|
РасширенныйСтраховойСтажРазмерДней
|
||||||
|
РасширенныйСтраховойСтажРазмерМесяцев
|
||||||
|
РасширенныйСтраховойСтажДней
|
||||||
|
РасширенныйСтраховойСтажМесяцев
|
||||||
|
РасширенныйСтраховойСтажЛет.
|
||||||
|
ПрочийСтажВид
|
||||||
|
ПрочийСтажПериодРегистрации
|
||||||
|
ПрочийСтажРазмерДней
|
||||||
|
ПрочийСтажРазмерМесяцев
|
||||||
|
ПрочийСтажДней
|
||||||
|
ПрочийСтажМесяцев
|
||||||
|
ПрочийСтажЛет.
|
||||||
|
ВыслугаЛетНаГосударственнойСлужбеВид
|
||||||
|
ВыслугаЛетНаГосударственнойСлужбеПериодРегистрации
|
||||||
|
ВыслугаЛетНаГосударственнойСлужбеРазмерМесяцев
|
||||||
|
ВыслугаЛетНаГосударственнойСлужбеРазмерДней
|
||||||
|
ВыслугаЛетНаГосударственнойСлужбеДней
|
||||||
|
ВыслугаЛетНаГосударственнойСлужбеМесяцев
|
||||||
|
ВыслугаЛетНаГосударственнойСлужбеЛет.
|
||||||
|
ВыслугаЛетНаВоеннойСлужбеВид
|
||||||
|
ВыслугаЛетНаВоеннойСлужбеПериодРегистрации
|
||||||
|
ВыслугаЛетНаВоеннойСлужбеРазмерМесяцев
|
||||||
|
ВыслугаЛетНаВоеннойСлужбеРазмерДней
|
||||||
|
ВыслугаЛетНаВоеннойСлужбеДней
|
||||||
|
ВыслугаЛетНаВоеннойСлужбеМесяцев
|
||||||
|
ВыслугаЛетНаВоеннойСлужбеЛет.
|
||||||
|
|
||||||
|
## Состояния в браке
|
||||||
|
СостояниеВБракеПериодРегистрации
|
||||||
|
СостояниеВБраке
|
||||||
|
|
||||||
|
## Воинский учет
|
||||||
|
ВоинскийУчетПериодРегистрации
|
||||||
|
ВоинскийУчетКатегорияЗапаса
|
||||||
|
ВоинскийУчетЗвание
|
||||||
|
ВоинскийУчетСостав
|
||||||
|
ВоинскийУчетВУС
|
||||||
|
ВоинскийУчетГодность
|
||||||
|
ВоинскийУчетВоенкомат
|
||||||
|
ВоинскийУчетНомерКомандыПартии
|
||||||
|
ВоинскийУчетПунктПеречня
|
||||||
|
ВоинскийУчетНаличиеМобпредписания
|
||||||
|
ВоинскийУчетОтношениеКВоинскойОбязанности
|
||||||
|
ВоинскийУчетОтношениеКВоинскомуУчету
|
||||||
|
ВоинскийУчетДатаСнятияСВоинскогоУчета
|
||||||
|
ВоинскийУчетДатаОформленияОтсрочки
|
||||||
|
ВоинскийУчетСерияУдостоверенияОбОтсрочке
|
||||||
|
ВоинскийУчетНомерУдостоверенияОбОтсрочке
|
||||||
|
ВоинскийУчетДатаСписка
|
||||||
|
ВоинскийУчетИсходящийНомерСписка
|
||||||
|
ВоинскийУчетПринадлежностьККазачеству
|
||||||
|
ВоинскийУчетАдминистративныеВзыскания
|
||||||
|
ВоинскийУчетДопускКонтрольныхОрганов
|
||||||
|
ВоинскийУчетПрохождениеВоенныхСборов
|
||||||
|
ВоинскийУчетКонтрактНаПребываниеВРезерве
|
||||||
|
ВоинскийУчетДополнительныеСведенияКарточки
|
||||||
|
ВоинскийУчетЗабронированОрганизациейПериодРегистрации
|
||||||
|
ВоинскийУчетЗабронированОрганизациейРегистратор
|
||||||
|
ВоинскийУчетЗабронированОрганизацией
|
||||||
|
ВоинскоеСпециальноеЗваниеПериодРегистрации
|
||||||
|
ВоинскоеСпециальноеЗвание
|
||||||
|
|
||||||
|
## Состав семей
|
||||||
|
КоличествоДетей
|
||||||
|
КоличествоДетейДляТ2
|
||||||
|
КоличествоИждивенцев
|
||||||
|
КоличествоРодственников
|
||||||
|
|
||||||
|
## Текущие кадровые данные
|
||||||
|
ТабельныйНомер
|
||||||
|
ДатаПриема
|
||||||
|
ДатаУвольнения
|
||||||
|
ДатаЗавершенияРаботы
|
||||||
|
ТекущаяОрганизация
|
||||||
|
ТекущееПодразделение
|
||||||
|
ТекущаяДолжность
|
||||||
|
ТекущийВидЗанятости
|
||||||
|
ОсновноеРабочееМестоВОрганизации
|
||||||
|
ОформленПоТрудовомуДоговору
|
||||||
|
ТекущаяДолжностьПоШтатномуРасписанию
|
||||||
|
ТекущийВидДоговора
|
||||||
|
ТекущаяТерритория
|
||||||
|
|
||||||
|
## Текущие данные об оплате труда
|
||||||
|
ТекущаяТарифнаяСтавка
|
||||||
|
ТекущийФОТ
|
||||||
|
ТекущаяНадбавка
|
||||||
|
ТекущийСпособРасчетаАванса
|
||||||
|
ТекущийАванс
|
||||||
|
ДатаНачалаУчета
|
||||||
|
|
||||||
|
## Данные приказа о приеме и увольнении
|
||||||
|
ПриказОПриеме
|
||||||
|
ПриказОПриемеДата
|
||||||
|
ПриказОПриемеНомер
|
||||||
|
ПриказОПриемеДатаЗавершенияТрудовогоДоговора
|
||||||
|
КраткосрочныйТрудовойДоговор
|
||||||
|
ПриказОбУвольнении
|
||||||
|
ПриказОбУвольненииДата
|
||||||
|
ПриказОбУвольненииНомер
|
||||||
|
ПриказОбУвольненииСтатьяТКРФ
|
||||||
|
|
||||||
|
## Сведения о подработках сотрудников
|
||||||
|
НазначениеПодработки
|
||||||
|
ПрекращениеПодработки
|
||||||
|
|
||||||
|
## Сведения о месте выплаты зарплаты
|
||||||
|
ВладелецМестаВыплаты
|
||||||
|
СправочникСсылка.Организации
|
||||||
|
СправочникСсылка.ПодразделенияОрганизаций
|
||||||
|
ВидМестаВыплаты
|
||||||
|
МестоВыплаты
|
||||||
|
СправочникСсылка.Кассы
|
||||||
|
СправочникСсылка.Банки
|
||||||
|
СправочникСсылка.ЗарплатныеПроекты.
|
||||||
|
|
||||||
|
## Информация о рабочем месте
|
||||||
|
РабочееМестоПериодРегистрации
|
||||||
|
РабочееМестоРегистратор
|
||||||
|
Организация
|
||||||
|
Подразделение
|
||||||
|
Должность
|
||||||
|
ВидЗанятости
|
||||||
|
ВидСобытия
|
||||||
|
КоличествоСтавок
|
||||||
|
ДолжностьПоШтатномуРасписанию
|
||||||
|
ВидДоговора
|
||||||
|
МестоВСтруктуреПредприятия
|
||||||
|
РайонныйКоэффициент
|
||||||
|
РайонныйКоэффициентРФ
|
||||||
|
РазрядКатегорияПериодРегистрации
|
||||||
|
РазрядКатегорияРегистратор
|
||||||
|
РазрядКатегория
|
||||||
|
ПКУПериодРегистрации
|
||||||
|
ПКУРегистратор
|
||||||
|
ПКУ
|
||||||
|
СостояниеПериодРегистрации
|
||||||
|
Состояние
|
||||||
|
ТерриторияПериодРегистрации
|
||||||
|
ТерриторияРегистратор
|
||||||
|
Территория
|
||||||
|
РуководительСтруктурногоПодразделения
|
||||||
|
ДолжностьРуководителяСтруктурногоПодразделения
|
||||||
|
ЯвляетсяЧленомЛетногоЭкипажа
|
||||||
|
ЯвляетсяШахтером
|
||||||
|
ЯвляетсяФармацевтом
|
||||||
|
ЯвляетсяРаботникомСДосрочнойПенсией
|
||||||
|
ЯвляетсяЧленомЭкипажаСуднаПодФлагомРФ
|
||||||
|
ТарифнаяСетка
|
||||||
|
ТарифнаяСеткаНадбавки
|
||||||
|
КлассныйЧинРангДолжности
|
||||||
|
|
||||||
|
## Информация об оплате труда
|
||||||
|
ОплатаТрудаПериодЗаписи
|
||||||
|
ОплатаТрудаРегистратор
|
||||||
|
ТарифнаяСтавка
|
||||||
|
ФОТ
|
||||||
|
Надбавка
|
||||||
|
ОсновноеНачисление
|
||||||
|
ПоказательТарифнойСтавки
|
||||||
|
СовокупнаяТарифнаяСтавкаПериодРегистрации
|
||||||
|
СовокупнаяТарифнаяСтавкаРегистратор
|
||||||
|
СовокупнаяТарифнаяСтавка
|
||||||
|
ВидСовокупнойТарифнойСтавки
|
||||||
|
ПорядокРасчетаСтоимостиЕдиницыВремениПериодРегистрации
|
||||||
|
ПорядокРасчетаСтоимостиЕдиницыВремениРегистратор
|
||||||
|
ПорядокРасчетаСтоимостиЕдиницыВремени
|
||||||
|
ГрейдПериодРегистрации
|
||||||
|
ГрейдРегистратор
|
||||||
|
Грейд
|
||||||
|
ГрафикРаботыПериодРегистрации
|
||||||
|
ГрафикРаботыРегистратор
|
||||||
|
ГрафикРаботы
|
||||||
|
СуммированныйУчетРабочегоВремени
|
||||||
|
СреднемесячноеЧислоЧасов
|
||||||
|
СреднемесячноеЧислоДней
|
||||||
|
ДоляНеполногоРабочегоВремени
|
||||||
|
АвансПериодРегистрации
|
||||||
|
АвансРегистратор
|
||||||
|
СпособРасчетаАванса
|
||||||
|
Аванс
|
||||||
|
ЗарплатныйПроектДатаОткрытияЛицевогоСчета
|
||||||
|
ЗарплатныйПроектРегистратор
|
||||||
|
ЗарплатныйПроект
|
||||||
|
НомерЛицевогоСчета
|
||||||
|
|
||||||
|
## Информация об учете затрат
|
||||||
|
УчетЗатратПериодРегистрации
|
||||||
|
СтатьяФинансирования
|
||||||
|
СпособОтраженияЗарплатыВБухучете
|
||||||
|
ОтношениеКЕНВД
|
||||||
|
УчетЗатратДокументОснование
|
||||||
|
|
||||||
|
## Основные данные контрактов, договоров сотрудника
|
||||||
|
ПредставительНанимателя
|
||||||
|
ДолжностьПредставителяНанимателя
|
||||||
|
ОснованиеПредставителя
|
||||||
|
ВидАктаГосоргана
|
||||||
|
ДатаОкончания
|
||||||
|
СрочныйДоговор
|
||||||
|
СрокЗаключенияДоговора
|
||||||
|
ОборудованиеРабочегоМеста
|
||||||
|
ИныеУсловияДоговора
|
||||||
|
ОснованиеСрочногоДоговора
|
||||||
|
|
||||||
|
## Информация о классах СОУТ
|
||||||
|
КлассУсловийТрудаПериодРегистрации
|
||||||
|
КлассУсловийТруда
|
||||||
|
КлассУсловийТрудаДатаРегистрацииИзменений
|
@ -0,0 +1,64 @@
|
|||||||
|
|
||||||
|
## Добавление команд создания на основании
|
||||||
|
Если необходимо создавать какие-то объекты на основании собственного, в первую очередь нужно вывести команды создания на основании на форму документа.
|
||||||
|
Для этого:
|
||||||
|
|
||||||
|
1. Форма должна быть подключена к механизму «Подключаемые команды»
|
||||||
|
2. В модуле менеджера собственного документа нужно реализовать экспортную процедуру `ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры)`
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
// Определяет список команд создания на основании.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
|
||||||
|
// Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры
|
||||||
|
//
|
||||||
|
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
|
||||||
|
|
||||||
|
Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаказДавальца) Тогда
|
||||||
|
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
|
||||||
|
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ЗаказДавальца.ПолноеИмя();
|
||||||
|
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ЗаказДавальца);
|
||||||
|
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
В этой процедуре определяется, какие документы будут создаваться на основании. Для многих типовых документов реализована экспортная процедура для добавления такой команды. Например, если нужно создавать только документы `ЗаказКлиента` и `ЗаказПоставщику` (для которых реализованы такие экспортные команды), то код может выглядеть так
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
|
||||||
|
|
||||||
|
Документы.ЗаказКлиента.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
|
||||||
|
Документы.ЗаказПоставщику.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
|
||||||
|
## Интерфейс для создания команд для создания нашего объекта
|
||||||
|
Если мы хотим дать возможность так же просто создавать команды создания на основании для своего документа, то нужно так же реализовать экспортную процедуру:
|
||||||
|
```bsl
|
||||||
|
|
||||||
|
// Добавляет команду создания документа
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// КомандыСозданияНаОсновании - ТаблицаЗначений - Таблица с командами создания на основании. Для изменения.
|
||||||
|
// См. описание 1 параметра процедуры СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании().
|
||||||
|
//
|
||||||
|
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
|
||||||
|
|
||||||
|
Если ПравоДоступа("Добавление", Метаданные.Документы.<МойДокумент>) Тогда
|
||||||
|
|
||||||
|
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
|
||||||
|
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.<МойДокумент>.ПолноеИмя();
|
||||||
|
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.<МойДокумент>);
|
||||||
|
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
|
||||||
|
|
||||||
|
Возврат КомандаСоздатьНаОсновании;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Неопределено;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
```
|
@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
title: Подключение к подсистеме "Версионирование"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Настройка объектов метаданных
|
||||||
|
- Все версионируемые объекты перечислить в свойстве `Тип` определяемого типа `ВерсионируемыеДанные` (типы Ссылка – например, `СправочникСсылка` или `ДокументСсылка`);
|
||||||
|
|
||||||
|
- В свойстве `Тип` определяемого типа `ВерсионируемыеДанныеОбъект` перечислить все версионируемые объекты, **КРОМЕ ДОКУМЕНТОВ** (типы Объект – например, `СправочникОбъект` или `БизнесПроцессОбъект`);
|
||||||
|
|
||||||
|
- Перечислить все версионируемые документы в свойстве `Источник` подписок `ЗаписатьВерсиюДокумента` (типы `ДокументОбъект`);
|
||||||
|
|
||||||
|
## Настройка форм
|
||||||
|
В обработчик `ПриСозданииНаСервере`
|
||||||
|
```bsl
|
||||||
|
// СтандартныеПодсистемы.ВерсионированиеОбъектов
|
||||||
|
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
|
||||||
|
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
|
||||||
|
```
|
||||||
|
## Настройка модуля менеджера
|
||||||
|
В модуле менеджера нужно прописать этот код (без изменений, если без настроек)
|
||||||
|
```bsl
|
||||||
|
// СтандартныеПодсистемы.ВерсионированиеОбъектов
|
||||||
|
// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Настройки - Структура - настройки подсистемы.
|
||||||
|
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
|
||||||
|
КонецПроцедуры
|
||||||
|
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
|
||||||
|
```
|
||||||
|
|
||||||
|
## Скрытие служебных реквизитов из отчета "Версии объекта"
|
||||||
|
Для скрытия реквизитов и табличных частей необходимо дополнить процедуру `ПриОпределенииНастроекВерсионированияОбъектов`, добавить процедуру `ПриПолученииСлужебныхРеквизитов`, в которой перечислить список скрываемых реквизитов и табличных частей. В результате код будет выглядеть примерно так:
|
||||||
|
```bsl
|
||||||
|
// СтандартныеПодсистемы.ВерсионированиеОбъектов
|
||||||
|
// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Настройки - Структура - настройки подсистемы.
|
||||||
|
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
|
||||||
|
Настройки.ПриПолученииСлужебныхРеквизитов = Истина;
|
||||||
|
КонецПроцедуры
|
||||||
|
// Ограничивает видимость реквизитов объекта в отчете по версии.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Реквизиты - Массив - список имен реквизитов объекта.
|
||||||
|
Процедура ПриПолученииСлужебныхРеквизитов(Реквизиты) Экспорт
|
||||||
|
Реквизиты.Добавить("ИмяРеквизита"); // реквизит объекта
|
||||||
|
Реквизиты.Добавить("ИмяТабличнойЧасти.*"); // табличная часть объекта
|
||||||
|
КонецПроцедуры
|
||||||
|
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
|
||||||
|
```
|
||||||
|
Затем
|
@ -0,0 +1,103 @@
|
|||||||
|
---
|
||||||
|
title: Подключение к подсистеме "Подключаемые команды"
|
||||||
|
---
|
||||||
|
## Форма объекта
|
||||||
|
```bsl
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||||
|
...
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПриОткрытии(Отказ)
|
||||||
|
...
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||||
|
...
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПослеЗаписи(ПараметрыЗаписи)
|
||||||
|
...
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||||
|
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||||
|
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||||
|
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ОбновитьКоманды()
|
||||||
|
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
|
||||||
|
КонецПроцедуры
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Форма списка
|
||||||
|
```bsl
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||||
|
...
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура СписокПриАктивизацииСтроки(Элемент)
|
||||||
|
...
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||||
|
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||||
|
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||||
|
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ОбновитьКоманды()
|
||||||
|
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
|
||||||
|
КонецПроцедуры
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
```
|
@ -0,0 +1,183 @@
|
|||||||
|
---
|
||||||
|
title: Подключение к подсистеме "Присоединенные Файлы"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Настройка определяемых типов
|
||||||
|
|
||||||
|
Включить собственный объект в определяемые типы:
|
||||||
|
- **`ВладелецПрисоединенныхФайлов`**
|
||||||
|
- **`ВладелецПрисоединенныхФайловОбъект`** (только для справочников)
|
||||||
|
- **`ВладелецПрисоединенныхФайловБЗК`** (в ЗУП)
|
||||||
|
|
||||||
|
## Создание справочника для хранения информации о файлах
|
||||||
|
- Скопировать любой стандартный справочник БСП, имя которого заканчивается на **`ПрисоединенныеФайлы`**. Например: **`АнкетаПокупателяПрисоединенныеФайлы`**.
|
||||||
|
- Скопированный справочник переименовать, следуя шаблону: **`<МойСправочник>ПрисоединенныеФайлы`**. Например: **`СН_АвтотранспортПрисоединенныеФайлы`**
|
||||||
|
- В скопированном справочнике **`<МойСправочник>ПрисоединенныеФайлы`** необходимо откорректировать тип реквизита **`ВладелецФайла`**. Как тип необходимо указать тот объект, который подключается к подсистеме. Например **`СН_АвтотранспортСсылка`**
|
||||||
|
- Справочник **`<МойСправочник>ПрисоединенныеФайлы`** нужно включить в определяемые типы **`ПрисоединенныйФайл`** и **`ПрисоединенныйФайлОбъект`**.
|
||||||
|
|
||||||
|
## Настройка формы объекта
|
||||||
|
Создать форму элемента (при отсутствии). В модуле формы необходимо добавить следующий код:
|
||||||
|
```bsl
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
|
||||||
|
// При необходимости, гиперссылка
|
||||||
|
// СтандартныеПодсистемы.РаботаСФайлами
|
||||||
|
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
|
||||||
|
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
|
||||||
|
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
|
||||||
|
// Конец СтандартныеПодсистемы.РаботаСФайлами
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПриОткрытии(Отказ)
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
|
||||||
|
// При необходимости, гиперссылка
|
||||||
|
// СтандартныеПодсистемы.РаботаСФайлами
|
||||||
|
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
|
||||||
|
// Конец СтандартныеПодсистемы.РаботаСФайлами
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПослеЗаписи(ПараметрыЗаписи)
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
|
||||||
|
// При необходимости, гиперссылка
|
||||||
|
// СтандартныеПодсистемы.РаботаСФайлами
|
||||||
|
РаботаСФайлами.ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, ЭтотОбъект);
|
||||||
|
// Конец СтандартныеПодсистемы.РаботаСФайлами
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||||
|
// При необходимости, гиперссылка
|
||||||
|
// СтандартныеПодсистемы.РаботаСФайлами
|
||||||
|
РаботаСФайлами.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
|
||||||
|
// Конец СтандартныеПодсистемы.РаботаСФайлами
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||||
|
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||||
|
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||||
|
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ОбновитьКоманды()
|
||||||
|
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
|
||||||
|
КонецПроцедуры
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
|
||||||
|
// ПРИ ИСПОЛЬЗОВАНИИ ГИПЕРССЫЛКИ ИЗ ПОДСИСТЕМЫ "РАБОТА С ФАЙЛАМИ"
|
||||||
|
// СтандартныеПодсистемы.РаботаСФайлами
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
|
||||||
|
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
|
||||||
|
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
|
||||||
|
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
|
||||||
|
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
## Настройка формы списка
|
||||||
|
### Подключение к программному интерфейсу
|
||||||
|
Создать форму списка (при отсутствии). В модуле формы необходимо добавить следующий код:
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура <ИмяСписка>ПриАктивизацииСтроки(Элемент)
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||||
|
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||||
|
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||||
|
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Подключаемый_ОбновитьКоманды()
|
||||||
|
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
|
||||||
|
КонецПроцедуры
|
||||||
|
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
|
```
|
||||||
|
### Вывод изображения скрепки в список
|
||||||
|
- Определить запрос для списка как `Произвольный`
|
||||||
|
> Информация о наличии файлов в БСП хранится в регистре сведений `НаличиеФайлов`, соответственно для получения информации необходимо присоединить этот регистр к основной таблице. Регистр сведений “Наличие файлов” содержит единственное измерение с типом `ОпределяемыйТип.ВладелецПрисоединенныхФайлов`, по которому и будет осуществляться соединение.
|
||||||
|
- В настройках списка на вкладке “Запрос” добавьте еще одно поле “ЕстьФайлы”, полученное в результате левого соединения с регистром “Наличие файлов”. В простейшем варианте запрос будет выглядеть так:
|
||||||
|
```bsl
|
||||||
|
ВЫБРАТЬ
|
||||||
|
ДокументЗаявкаНаРазработку.Ссылка КАК Ссылка,
|
||||||
|
//Произвольные поля,
|
||||||
|
ВЫБОР
|
||||||
|
КОГДА НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL
|
||||||
|
ТОГДА 0
|
||||||
|
КОГДА НаличиеФайлов.ЕстьФайлы
|
||||||
|
ТОГДА 1
|
||||||
|
ИНАЧЕ 0
|
||||||
|
КОНЕЦ КАК ЕстьФайлы
|
||||||
|
ИЗ
|
||||||
|
Документ.ЗаявкаНаРазработку КАК ДокументЗаявкаНаРазработку
|
||||||
|
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов
|
||||||
|
ПО ДокументЗаявкаНаРазработку.Ссылка = НаличиеФайлов.ОбъектСФайлами
|
||||||
|
```
|
||||||
|
- После сохранения произвольного запроса необходимо вывести новое поле `ЕстьФайлы` в таблицу формы. В свойствах этого реквизита устанавливаем свойство `Вид` в значение `Поле картинки`, свойство `ПоложениеЗаголовка` в значение `Нет`, а в свойстве `КартинкаЗначений` выбираем стандартную БСПшную картинку `КоллекцияСкрепка`, которая находится во вкладке `Из конфигурации`
|
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
```bsl
|
||||||
|
Результат = ФормированиеПечатныхФорм.КоличествоПрописью(Количество)
|
||||||
|
```
|
@ -0,0 +1,3 @@
|
|||||||
|
```bsl
|
||||||
|
Результат = РаботаСКурсамиВалют.СформироватьСуммуПрописью(СуммаЧислом, Валюта, БезДробнойЧасти, КодЯзыка, ДробнаяЧастьПрописью);
|
||||||
|
```
|
@ -0,0 +1,6 @@
|
|||||||
|
Создает полную копию структуры, соответствия, массива, списка или таблицы значений, рекурсивно,
|
||||||
|
с учетом типов дочерних элементов. При этом содержимое значений объектных типов
|
||||||
|
`(СправочникОбъект, ДокументОбъект и т.п.)` не копируются, а возвращаются ссылки на исходный объект.
|
||||||
|
```bsl
|
||||||
|
Результат = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(Источник, ФиксироватьДанные);
|
||||||
|
```
|
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
Пример запроса к ресурсу `https://proverkacheka.com/api/v1/check/get`
|
||||||
|
```bsl
|
||||||
|
АдресХоста = "proverkacheka.com";
|
||||||
|
АдресРесурса = "/api/v1/check/get";
|
||||||
|
|
||||||
|
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL;
|
||||||
|
Соединение = Новый HTTPСоединение(АдресХоста, 443, , , , 30, ЗащищенноеСоединение);
|
||||||
|
|
||||||
|
Запрос = Новый HTTPЗапрос(АдресРесурса);
|
||||||
|
Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
|
||||||
|
// application/x-www-form-urlencoded - формат, когда тело передается строкой с парами "Ключ-значение", разделенными &
|
||||||
|
|
||||||
|
// формат запроса читаем в документации к api
|
||||||
|
// Т.к. амерсанд разделяет пары, то нужно, чтобы в значениях его не было. Заменяем на %26
|
||||||
|
Тело = СтрШаблон("token=%1&qrraw=%2", "my_secret_token", СтрЗаменить(СыройТекстQRКода(), "&", "%26"));
|
||||||
|
|
||||||
|
Запрос.УстановитьТелоИзСтроки(Тело, КодировкаТекста.UTF8);
|
||||||
|
Ответ = Соединение.ОтправитьДляОбработки(Запрос); // это POST, см. синтакс-помощник
|
||||||
|
|
||||||
|
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
|
||||||
|
|
||||||
|
Если Ответ.КодСостояния = 200 Тогда // запрос обработан успешно
|
||||||
|
// обрабатываем результат
|
||||||
|
Иначе
|
||||||
|
// Обрабатываем ошибку
|
||||||
|
КонецЕсли;
|
||||||
|
```
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,72 @@
|
|||||||
|
# 🌐 Символы, требующие экранирования в теле HTTP-запроса
|
||||||
|
|
||||||
|
В теле HTTP-запроса (в URL, JSON, form-data, XML и других форматах) **некоторые символы должны быть экранированы**, чтобы не нарушить синтаксис или не вызвать ошибку интерпретации данных.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔒 Символы, которые нужно экранировать (URL encoding)
|
||||||
|
|
||||||
|
| Символ | Назначение / причина экранирования | Кодировка (URL encoding) |
|
||||||
|
|--------|------------------------------------|---------------------------|
|
||||||
|
| ` ` (пробел) | Разделитель — не допускается в URL | `%20` или `+` |
|
||||||
|
| `"` | Строковый литерал в JSON/XML | `%22` |
|
||||||
|
| `'` | Апостроф (может нарушить SQL/XML/HTML) | `%27` |
|
||||||
|
| `<` | Тег в HTML/XML | `%3C` |
|
||||||
|
| `>` | Тег в HTML/XML | `%3E` |
|
||||||
|
| `&` | Разделитель параметров | `%26` |
|
||||||
|
| `=` | Разделяет имя и значение | `%3D` |
|
||||||
|
| `?` | Начало query-строки | `%3F` |
|
||||||
|
| `/` | Разделитель пути | `%2F` |
|
||||||
|
| `\` | Экранирование в JSON/JS | `%5C` |
|
||||||
|
| `#` | Якорь в URL | `%23` |
|
||||||
|
| `%` | Префикс для escape-последовательностей | `%25` |
|
||||||
|
| `:` | Разделитель схемы URL | `%3A` |
|
||||||
|
| `@` | В URL может обозначать логин | `%40` |
|
||||||
|
| `+` | Обозначает пробел в `application/x-www-form-urlencoded` | `%2B` |
|
||||||
|
| `{` `}` | JSON-структуры | `%7B` `%7D` |
|
||||||
|
| `[` `]` | Массивы / JSON | `%5B` `%5D` |
|
||||||
|
| `,` | Разделитель в CSV, JSON и др. | `%2C` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 Пример экранирования URL
|
||||||
|
|
||||||
|
Исходный URL:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://example.com/api?query=тест & значение
|
||||||
|
```
|
||||||
|
|
||||||
|
После экранирования:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://example.com/api?query=%D1%82%D0%B5%D1%81%D1%82%20%26%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📎 Пример в JSON
|
||||||
|
|
||||||
|
JSON с кавычками и спецсимволами:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message": "Привет \"мир\" <script>alert('xss');</script>"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
При передаче должно быть:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message": "Привет \\"мир\\" \\u003Cscript\\u003Ealert(\\'xss\\');\\u003C/script\\u003E"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧠 Совет
|
||||||
|
|
||||||
|
- В URL используйте `encodeURIComponent()` (JavaScript) или аналогичные функции в других языках.
|
||||||
|
- В JSON-строках используйте escape-символ `\` и Unicode-коды.
|
||||||
|
- Для `application/x-www-form-urlencoded` — кодируйте с учётом `+` вместо пробела.
|
@ -0,0 +1,17 @@
|
|||||||
|
Чтобы изменить цветовое оформление для информационных баз, отличных от рабочей, необходимо создать расширение, в котором создать объект `Стиль`.
|
||||||
|

|
||||||
|
|
||||||
|
Затем, в модуле сеанса реализовать процедуру `УстановкаПараметровСеанса`
|
||||||
|
```bsl
|
||||||
|
&После("УстановкаПараметровСеанса")
|
||||||
|
Процедура Расш1_УстановкаПараметровСеанса(ТребуемыеПараметры)
|
||||||
|
|
||||||
|
СтрокаСоединения = ВРег(СтрокаСоединенияИнформационнойБазы());
|
||||||
|
ЭтоТестовая = СтрНайти(СтрокаСоединения, ВРег("Ref=""имя-вашей-базы""")) = 0;
|
||||||
|
|
||||||
|
Если ЭтоТестовая И ГлавныйСтиль <> БиблиотекаСтилей["Расш1_СтильТестовойБазы"] Тогда
|
||||||
|
ГлавныйСтиль = БиблиотекаСтилей["Расш1_СтильТестовойБазы"];
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
@ -0,0 +1,7 @@
|
|||||||
|
```bsl
|
||||||
|
Хеш = Новый ХешированиеДанных(ХешФункция.MD5);
|
||||||
|
Хеш.Добавить("НУЖНЫЙ ТЕКСТ");
|
||||||
|
|
||||||
|
ДД = Хеш.ХешСумма;
|
||||||
|
ХешСтрока = ПолучитьHexСтрокуИзДвоичныхДанных(ДД);
|
||||||
|
```
|
@ -1,39 +1,44 @@
|
|||||||
|
|
||||||
## Пример добавления
|
## Пример добавления реквизитов
|
||||||
|
### Примитивные типы
|
||||||
```1c
|
```bsl
|
||||||
ДобавляемыеРеквизиты = Новый Массив; // Определяем массив добавляемых реквизитов
|
ДобавляемыеРеквизиты = Новый Массив; // Определяем массив добавляемых реквизитов
|
||||||
|
|
||||||
НовыйРеквизит = Новый РеквизитФормы(
|
НовыйРеквизит = Новый РеквизитФормы("Комментарий",
|
||||||
"Комментарий",
|
Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(500)));
|
||||||
Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(500))
|
|
||||||
);
|
|
||||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||||
|
|
||||||
НовыйРеквизит = Новый РеквизитФормы(
|
НовыйРеквизит = Новый РеквизитФормы("Номер",
|
||||||
"Номер",
|
Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0)));
|
||||||
Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0))
|
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||||
);
|
|
||||||
|
НовыйРеквизит = Новый РеквизитФормы("Дата",
|
||||||
|
Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)));
|
||||||
|
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||||
|
|
||||||
|
НовыйРеквизит = Новый РеквизитФормы("Наименование",
|
||||||
|
Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150)));
|
||||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||||
|
|
||||||
НовыйРеквизит = Новый РеквизитФормы(
|
НовыйРеквизит = Новый РеквизитФормы(
|
||||||
"Дата",
|
"ПометкаУдаления", Новый ОписаниеТипов("Булево"));
|
||||||
Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя))
|
|
||||||
);
|
|
||||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
|
||||||
|
|
||||||
НовыйРеквизит = Новый РеквизитФормы(
|
|
||||||
"Наименование",
|
|
||||||
Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150))
|
|
||||||
);
|
|
||||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
|
||||||
|
|
||||||
НовыйРеквизит = Новый РеквизитФормы(
|
|
||||||
"ПометкаУдаления",
|
|
||||||
Новый ОписаниеТипов("Булево")
|
|
||||||
);
|
|
||||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||||
|
|
||||||
|
ЭтотОбъект.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
|
||||||
|
```
|
||||||
|
### Ссылочные типы
|
||||||
|
```bsl
|
||||||
|
РазрешенныеТипы = Новый Массив;
|
||||||
|
РазрешенныеТипы.Добавить("ДокументСсылка.ЗаказПоставщику");
|
||||||
|
РазрешенныеТипы.Добавить("ДокументСсылка.ПриобретениеТоваровУслуг");
|
||||||
|
ОписаниеТипов = Новый ОписаниеТипов(РазрешенныеТипы);
|
||||||
|
НовыйРеквизит = Новый РеквизитФормы(
|
||||||
|
"ДокументПриобретения",
|
||||||
|
ОписаниеТипов,
|
||||||
|
,
|
||||||
|
"Документ приобретения",
|
||||||
|
Ложь);
|
||||||
|
|
||||||
ЭтотОбъект.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
|
ЭтотОбъект.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -0,0 +1,137 @@
|
|||||||
|
# 🔍 Основные операторы регулярных выражений с примерами
|
||||||
|
|
||||||
|
Регулярные выражения (RegExp) — это мощный инструмент для поиска и обработки текста.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 1. `.` — любой символ
|
||||||
|
|
||||||
|
Соответствует **любому одному символу**, кроме перевода строки.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `a.c`
|
||||||
|
- Совпадёт с: `abc`, `axc`, `a1c`
|
||||||
|
- Не совпадёт с: `ac`, `abbc`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 2. `^` — начало строки
|
||||||
|
|
||||||
|
Соответствует **началу строки**.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `^Привет`
|
||||||
|
- Совпадёт с: `Привет мир`
|
||||||
|
- Не совпадёт с: `Мир, Привет`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 3. `$` — конец строки
|
||||||
|
|
||||||
|
Соответствует **концу строки**.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `мир$`
|
||||||
|
- Совпадёт с: `Привет, мир`
|
||||||
|
- Не совпадёт с: `мир!`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 4. `*` — ноль или более повторений
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `a*`
|
||||||
|
- Совпадёт с: `""`, `a`, `aa`, `aaaa`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 5. `+` — один или более повторений
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `a+`
|
||||||
|
- Совпадёт с: `a`, `aa`, `aaa`
|
||||||
|
- Не совпадёт с: `""`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 6. `?` — ноль или одно вхождение
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `a?`
|
||||||
|
- Совпадёт с: `""`, `a`
|
||||||
|
- Не совпадёт с: `aa`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 7. `[]` — набор символов
|
||||||
|
|
||||||
|
Соответствует **одному из символов внутри скобок**.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `[abc]`
|
||||||
|
- Совпадёт с: `a`, `b`, `c`
|
||||||
|
- Не совпадёт с: `d`, `ab`
|
||||||
|
|
||||||
|
Можно использовать диапазоны:
|
||||||
|
- `[a-z]` — все строчные латинские буквы
|
||||||
|
- `[0-9]` — все цифры
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 8. `[^]` — отрицание
|
||||||
|
|
||||||
|
Соответствует **любому символу, кроме указанных**.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `[^0-9]`
|
||||||
|
- Совпадёт с: `a`, `!`
|
||||||
|
- Не совпадёт с: `5`, `3`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 9. `|` — логическое ИЛИ
|
||||||
|
|
||||||
|
Соответствие **любому из вариантов**.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `кот|пёс`
|
||||||
|
- Совпадёт с: `кот`, `пёс`
|
||||||
|
- Не совпадёт с: `слон`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 10. `()` — группировка
|
||||||
|
|
||||||
|
Используется для объединения символов в **группы**.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `(ab)+`
|
||||||
|
- Совпадёт с: `ab`, `abab`, `ababab`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 11. `\` — экранирование
|
||||||
|
|
||||||
|
Используется для экранирования специальных символов.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `\.` — точка как символ, а не оператор
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 Практический пример
|
||||||
|
|
||||||
|
Найти все email-адреса в тексте:
|
||||||
|
|
||||||
|
```regexp
|
||||||
|
\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📘 Совет
|
||||||
|
|
||||||
|
Тестируйте регулярные выражения на сайтах:
|
||||||
|
- https://regex101.com/
|
||||||
|
- https://regexr.com/
|
||||||
|
|
@ -0,0 +1,104 @@
|
|||||||
|
# 🚀 Продвинутые операторы регулярных выражений
|
||||||
|
|
||||||
|
Эти конструкции дают больше контроля над поиском и заменой текста.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧱 1. `{n}`, `{n,}`, `{n,m}` — точное количество повторений
|
||||||
|
|
||||||
|
- `{n}` — ровно n повторений
|
||||||
|
- `{n,}` — минимум n повторений
|
||||||
|
- `{n,m}` — от n до m повторений
|
||||||
|
|
||||||
|
**Примеры:**
|
||||||
|
- `a{3}` — `aaa`
|
||||||
|
- `a{2,4}` — `aa`, `aaa`, `aaaa`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧠 2. `(?...)` — специальные конструкции
|
||||||
|
|
||||||
|
### 2.1 `(?:...)` — негруппирующая скобка
|
||||||
|
|
||||||
|
- Не сохраняет группу для дальнейшего обращения
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- `(?:abc)+` — совпадает с `abcabc`, но не сохраняет `abc` как отдельную группу
|
||||||
|
|
||||||
|
### 2.2 `(?=...)` — позитивная опережающая проверка (lookahead)
|
||||||
|
|
||||||
|
- Условие, что **далее по тексту есть шаблон**
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- `\d(?=px)` — цифра перед `px`, например: `5px` → совпадает `5`
|
||||||
|
|
||||||
|
### 2.3 `(?!...)` — негативная опережающая проверка
|
||||||
|
|
||||||
|
- Условие, что **далее по тексту нет шаблона**
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- `foo(?!bar)` — найдёт `foo`, не за которым идёт `bar`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧩 3. `(?<=...)` и `(?<!...)` — lookbehind (опережающее назад)
|
||||||
|
|
||||||
|
- `(?<=...)` — **есть шаблон до**
|
||||||
|
- `(?<!...)` — **нет шаблона до**
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- `(?<=@)\w+` — найдёт слово **после символа `@`** (например, `gmail` в `user@gmail.com`)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌀 4. `\b` и `\B` — границы слова
|
||||||
|
|
||||||
|
- `\b` — граница слова
|
||||||
|
- `\B` — НЕ граница слова
|
||||||
|
|
||||||
|
**Примеры:**
|
||||||
|
- `\bword\b` — точное слово `word`
|
||||||
|
- `\Bword` — `password`, `sword`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔂 5. Рекурсивные шаблоны (в некоторых движках)
|
||||||
|
|
||||||
|
Некоторые реализации (например, PCRE) поддерживают вложенные структуры:
|
||||||
|
|
||||||
|
```regexp
|
||||||
|
\((?>[^()]+|(?R))*\)
|
||||||
|
```
|
||||||
|
|
||||||
|
Этот шаблон находит корректно вложенные скобки. Используется редко.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 6. Обратные ссылки (Backreferences)
|
||||||
|
|
||||||
|
Позволяют ссылаться на уже найденные группы.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- Шаблон: `(\w+) \1`
|
||||||
|
- Совпадёт с: `test test`, `hello hello`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔄 7. Условные выражения
|
||||||
|
|
||||||
|
Поддерживаются не везде, но позволяют задать условия:
|
||||||
|
|
||||||
|
```regexp
|
||||||
|
(?(1)yes|no)
|
||||||
|
```
|
||||||
|
|
||||||
|
Если группа 1 существует, будет `yes`, иначе `no`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📘 Полезные ресурсы
|
||||||
|
|
||||||
|
- [regex101.com](https://regex101.com/)
|
||||||
|
- [Regular Expressions Cheat Sheet (MDN)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Cheatsheet)
|
||||||
|
- [rexegg.com](https://www.rexegg.com/)
|
||||||
|
|
@ -0,0 +1,116 @@
|
|||||||
|
# 📚 Часто используемые регулярные выражения
|
||||||
|
|
||||||
|
Полезная мини-библиотека шаблонов на каждый день.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📧 Email
|
||||||
|
|
||||||
|
```regex
|
||||||
|
\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📱 Телефон (Россия)
|
||||||
|
|
||||||
|
```regex
|
||||||
|
\+7\s?\(?\d{3}\)?\s?\d{3}[-\s]?\d{2}[-\s]?\d{2}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 URL
|
||||||
|
|
||||||
|
```regex
|
||||||
|
https?:\/\/(www\.)?[a-zA-Z0-9\-]+(\.[a-zA-Z]{2,})+(\/\S*)?
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔢 Только числа
|
||||||
|
|
||||||
|
```regex
|
||||||
|
^\d+$
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔠 Только буквы
|
||||||
|
|
||||||
|
```regex
|
||||||
|
^[a-zA-Zа-яА-Я]+$
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🆔 UUID (GUID)
|
||||||
|
|
||||||
|
```regex
|
||||||
|
[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📅 Дата в формате YYYY-MM-DD
|
||||||
|
|
||||||
|
```regex
|
||||||
|
\d{4}-\d{2}-\d{2}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💳 Номер банковской карты (16 цифр)
|
||||||
|
|
||||||
|
```regex
|
||||||
|
\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💻 IP-адрес (IPv4)
|
||||||
|
|
||||||
|
```regex
|
||||||
|
\b(?:\d{1,3}\.){3}\d{1,3}\b
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔐 Пароль (минимум 8 символов, буквы и цифры)
|
||||||
|
|
||||||
|
```regex
|
||||||
|
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 Почтовый индекс (Россия)
|
||||||
|
|
||||||
|
```regex
|
||||||
|
\b\d{6}\b
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧼 HTML-теги
|
||||||
|
|
||||||
|
```regex
|
||||||
|
<[^>]+>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔍 Ненулевое число с десятичной точкой
|
||||||
|
|
||||||
|
```regex
|
||||||
|
^\d*\.\d+$
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📁 Расширение файла `.jpg`, `.png`, `.gif`
|
||||||
|
|
||||||
|
```regex
|
||||||
|
\.(jpe?g|png|gif)$
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,100 @@
|
|||||||
|
# 🧙♂️ Экспертные техники регулярных выражений
|
||||||
|
|
||||||
|
Эти конструкции полезны для сложных сценариев обработки текста. Они не всегда поддерживаются во всех движках (например, JavaScript, Python, PCRE, .NET могут отличаться).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧬 1. Балансирующие группы (только .NET)
|
||||||
|
|
||||||
|
Позволяют обрабатывать вложенные конструкции без рекурсии.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
|
||||||
|
```regex
|
||||||
|
^\((?>[^()]+|\((?<Depth>)|\)(?<-Depth>))*(?(Depth)(?!))\)$
|
||||||
|
```
|
||||||
|
|
||||||
|
Используется для проверки сбалансированных скобок.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧠 2. Отрицательные и позитивные lookbehind'ы
|
||||||
|
|
||||||
|
Условие, что **перед символом** есть (или нет) шаблон.
|
||||||
|
|
||||||
|
- `(?<=\d{3})abc` — `abc` после трёх цифр
|
||||||
|
- `(?<!\d{3})abc` — `abc`, не после трёх цифр
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔃 3. Atomic groups
|
||||||
|
|
||||||
|
Предотвращают backtracking.
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
|
||||||
|
```regex
|
||||||
|
(?>\d+)
|
||||||
|
```
|
||||||
|
|
||||||
|
Это "жадный" захват — если не сработало, движок не будет пробовать другие варианты внутри группы.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌀 4. Рекурсия (PCRE)
|
||||||
|
|
||||||
|
Вложенные шаблоны:
|
||||||
|
|
||||||
|
```regex
|
||||||
|
\((?:[^()]+|(?R))*\)
|
||||||
|
```
|
||||||
|
|
||||||
|
Используется для обработки вложенных скобок, тегов и пр.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧾 5. Named capture groups (именованные группы)
|
||||||
|
|
||||||
|
```regex
|
||||||
|
(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
|
||||||
|
```
|
||||||
|
|
||||||
|
Доступ к `year`, `month`, `day` по имени.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 6. Inline flags
|
||||||
|
|
||||||
|
Изменяют поведение внутри шаблона.
|
||||||
|
|
||||||
|
**Примеры:**
|
||||||
|
|
||||||
|
- `(?i)` — регистронезависимый режим
|
||||||
|
- `(?m)` — многострочный режим
|
||||||
|
- `(?s)` — точка `.` включает `\n`
|
||||||
|
|
||||||
|
Пример:
|
||||||
|
|
||||||
|
```regex
|
||||||
|
(?i)abc # будет найдено и ABC, и abc
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚠️ 7. Группы с ленивым захватом
|
||||||
|
|
||||||
|
Жадный поиск: `.*`
|
||||||
|
Ленивый: `.*?`
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
|
||||||
|
- `".*"` — захватит всё между первой и последней кавычкой
|
||||||
|
- `".*?"` — захватит только между ближайшими кавычками
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧠 Советы:
|
||||||
|
|
||||||
|
- Используйте отладчик: [regex101.com](https://regex101.com/)
|
||||||
|
- Проверяйте поддержку: не все движки поддерживают recursion, lookbehind, atomic и т.д.
|
||||||
|
- Разбивайте сложные выражения на части
|
Loading…
x
Reference in New Issue
Block a user