Добавлены статьи
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`
|
||||
|
||||
3. Найдите параметр `ImagePath`, откройте его и в конец строки **добавьте пробел и флаг `–debug`**.
|
||||
3.1. Если нужно включить HTTP-отладку, то дальше добавляем флаг `-http` (т.е. получится строка `-debug -http`)
|
||||
|
||||
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,38 +1,43 @@
|
||||
|
||||
## Пример добавления
|
||||
|
||||
```1c
|
||||
## Пример добавления реквизитов
|
||||
### Примитивные типы
|
||||
```bsl
|
||||
ДобавляемыеРеквизиты = Новый Массив; // Определяем массив добавляемых реквизитов
|
||||
|
||||
НовыйРеквизит = Новый РеквизитФормы(
|
||||
"Комментарий",
|
||||
Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(500))
|
||||
);
|
||||
НовыйРеквизит = Новый РеквизитФормы("Комментарий",
|
||||
Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(500)));
|
||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||
|
||||
НовыйРеквизит = Новый РеквизитФормы("Номер",
|
||||
Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0)));
|
||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||
|
||||
НовыйРеквизит = Новый РеквизитФормы("Дата",
|
||||
Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)));
|
||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||
|
||||
НовыйРеквизит = Новый РеквизитФормы("Наименование",
|
||||
Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150)));
|
||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||
|
||||
НовыйРеквизит = Новый РеквизитФормы(
|
||||
"Номер",
|
||||
Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0))
|
||||
);
|
||||
"ПометкаУдаления", Новый ОписаниеТипов("Булево"));
|
||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||
|
||||
ЭтотОбъект.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
|
||||
```
|
||||
### Ссылочные типы
|
||||
```bsl
|
||||
РазрешенныеТипы = Новый Массив;
|
||||
РазрешенныеТипы.Добавить("ДокументСсылка.ЗаказПоставщику");
|
||||
РазрешенныеТипы.Добавить("ДокументСсылка.ПриобретениеТоваровУслуг");
|
||||
ОписаниеТипов = Новый ОписаниеТипов(РазрешенныеТипы);
|
||||
НовыйРеквизит = Новый РеквизитФормы(
|
||||
"Дата",
|
||||
Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя))
|
||||
);
|
||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||
|
||||
НовыйРеквизит = Новый РеквизитФормы(
|
||||
"Наименование",
|
||||
Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150))
|
||||
);
|
||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||
|
||||
НовыйРеквизит = Новый РеквизитФормы(
|
||||
"ПометкаУдаления",
|
||||
Новый ОписаниеТипов("Булево")
|
||||
);
|
||||
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
|
||||
"ДокументПриобретения",
|
||||
ОписаниеТипов,
|
||||
,
|
||||
"Документ приобретения",
|
||||
Ложь);
|
||||
|
||||
ЭтотОбъект.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
|
||||
```
|
||||
|
@ -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