Кнопка "Проверить" адаптера выполняет проверку орфографии в текущем поле. Если находит ошибки, то сразу открывает их список. Если не находит, то выводит уведомление об их отсутствии.
Кнопка "ОК" адаптера замещает штатную кнопку "ОК", чтобы автоматически пр...
Алгоритм используется, например, для вычисления контрольной цифры номера пластиковой карты, кода IMEI и т.п.
Функция ПроверитьНомерПоАлгоритмуЛуна(Номер) Экспорт
// Удаляем все нецифровые символы из номера
ОчищенныйНомер = СтрЗаменить(Номер, " ", "");
ОчищенныйНомер = СтрЗаменить(ОчищенныйНомер, "-", "");
ОчищенныйНомер = СтрЗаменить(ОчищенныйНомер, "/", "");
// Проверяем, что номер не пустой и содержит только цифры
Если ПустаяСтрока(ОчищенныйНомер) Тогда
Возврат Ложь;
КонецЕсли;
Для Позиция = 1 По СтрДлина(ОчищенныйНомер) Цикл
Символ = Сред(ОчищенныйНомер, Позиция, 1);
Если Символ < "0" Или Символ > "9" Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
// Реализация алгоритма Луна
Сумма = 0;
Позиция = СтрДлина(ОчищенныйНомер);
ЧетнаяПозиция = Ложь;
Пока Позиция > 0 Цикл
Цифра = Число(Сред(ОчищенныйНомер, Позиция, 1));
Если ЧетнаяПозиция Тогда
Цифра = Цифра * 2;
Если Цифра > 9 Тогда
Цифра = Цифра - 9;
КонецЕсли;
КонецЕсли;
Сумма = Сумма + Цифра;
ЧетнаяПозиция = Не ЧетнаяПозиция;
Позиция = Позиция - 1;
КонецЦикла;
Возврат (Сумма % 10 = 0);
КонецФункции
Функция ПроверитьНомерПоАлгоритмуЛуна(Номер) Экспорт
// Удаляем все нецифровые символы из номера
ОчищенныйНомер = СтрЗаменить(Номер, " ", "");
ОчищенныйНомер = СтрЗаменить(ОчищенныйНомер, "-", "");
ОчищенныйНомер = СтрЗаменить(ОчищенныйНомер, "/", "");
// Проверяем, что номер не пустой и содержит только цифры
Если ПустаяСтрока(ОчищенныйНомер) Тогда
Возврат Ложь;
КонецЕсли;
Для Позиция = 1 По СтрДлина(ОчищенныйНомер) Цикл
Символ = Сред(ОчищенныйНомер, Позиция, 1);
Если Символ < "0" Или Символ > "9" Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
// Реализация алгоритма Луна
Сумма = 0;
Позиция = СтрДлина(ОчищенныйНомер);
ЧетнаяПозиция = Ложь;
Пока Позиция > 0 Цикл
Цифра = Число(Сред(ОчищенныйНомер, Позиция, 1));
Если ЧетнаяПозиция Тогда
Цифра = Цифра * 2;
Если Цифра > 9 Тогда
Цифра = Цифра - 9;
КонецЕсли;
КонецЕсли;
Сумма = Сумма + Цифра;
ЧетнаяПозиция = Не ЧетнаяПозиция;
Позиция = Позиция - 1;
КонецЦикла;
Возврат (Сумма % 10 = 0);
КонецФункции
1С Менеджер конфигураций — альтернативный стартер информационных баз 1С:Предприятие.
&НаСервере
Процедура Читать<?"Введите название коллекции">НаСервере()
ТабДок = Новый ТабличныйДокумент;
Попытка
ТабДок.Прочитать(Объект.ПутьКФайлу);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось прочитать файл по причине: " + ОписаниеОшибки();
Сообщение.Сообщить();
Возврат;
КонецПопытки;
КоличествоСтрок = ТабДок.ВысотаТаблицы;
КоличествоКолонок = ТабДок.ШиринаТаблицы;
Для НомерСтроки = 2 По КоличествоСтрок Цикл
Строка = <?"Введите название коллекции">.Добавить();
//Строка. = ТабДок.Область(НомерСтроки, 1).Текст;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура Читать<?"Введите название коллекции">НаСервере()
ТабДок = Новый ТабличныйДокумент;
Попытка
ТабДок.Прочитать(Объект.ПутьКФайлу);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось прочитать файл по причине: " + ОписаниеОшибки();
Сообщение.Сообщить();
Возврат;
КонецПопытки;
КоличествоСтрок = ТабДок.ВысотаТаблицы;
КоличествоКолонок = ТабДок.ШиринаТаблицы;
Для НомерСтроки = 2 По КоличествоСтрок Цикл
Строка = <?"Введите название коллекции">.Добавить();
//Строка. = ТабДок.Область(НомерСтроки, 1).Текст;
КонецЦикла;
КонецПроцедуры
1 Универсальная функция для всех типов доп.обработок/отчетов
Можно добавить в общий модуль и навсегда забыть об инициализации сведений вручную
// Пример использования в доп.обработке:
Функция СведенияОВнешнейОбработке() Экспорт
СведенияОВнешнейОбр...
// модуль объекта в событии ПередЗаписью
ХешОбъектаДоИзменения = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(ЭтотОбъект.Ссылка.ПолучитьОбъект());
ХешОбъектаТекущий = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(ЭтотОбъект);
Модифицированность = ХешОбъектаДоИзменения <> ХешОбъектаТекущий;
// модуль объекта в событии ПередЗаписью
ХешОбъектаДоИзменения = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(ЭтотОбъект.Ссылка.ПолучитьОбъект());
ХешОбъектаТекущий = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(ЭтотОбъект);
Модифицированность = ХешОбъектаДоИзменения <> ХешОбъектаТекущий;
В 1С:ЗУП при печати формы Т-9 (приказ о направлении в командировку) требуется провести документ, хотя в приказе нет расчетных данных.
Чтобы отменить требование проведения документа перед печатью достаточно у этой команды изменить РежимЗаписи, например, ...
Функция ПолучитьНомерПоследнейСФ()
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| МАКСИМУМ(СчетФактура.Номер) КАК Номер
|ИЗ
| Документ.СчетФактура КАК СчетФактура
|ГДЕ
| СчетФактура.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийСчетФактура.Продажа)";
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
ПоследнийНомер = Число(Сред(Результат.Номер, Найти(Результат.Номер, "-") + 1)) + 1;
Иначе
ПоследнийНомер = 1;
КонецЕсли;
Префикс = "00НФ-";
НовыйНомер = Строка(Префикс) + СтроковыеФункцииКлиентСервер.ДополнитьСтроку(ПоследнийНомер, 6, "0", "Слева");
Возврат НовыйНомер;
КонецФункции
Функция ПолучитьНомерПоследнейСФ()
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| МАКСИМУМ(СчетФактура.Номер) КАК Номер
|ИЗ
| Документ.СчетФактура КАК СчетФактура
|ГДЕ
| СчетФактура.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийСчетФактура.Продажа)";
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
ПоследнийНомер = Число(Сред(Результат.Номер, Найти(Результат.Номер, "-") + 1)) + 1;
Иначе
ПоследнийНомер = 1;
КонецЕсли;
Префикс = "00НФ-";
НовыйНомер = Строка(Префикс) + СтроковыеФункцииКлиентСервер.ДополнитьСтроку(ПоследнийНомер, 6, "0", "Слева");
Возврат НовыйНомер;
КонецФункции
Скрипт реализует вставку комментария в коде по Ctrl + / (не Num/) и удаление комментария по Ctrl + Shift + / (не Num/)
Запрос Преобразовать конвертировать строку в Дата "ГГГГММДД" Запросом из Строки
ВЫБРАТЬ
01 КАК НомерСтроки,
"20260105170929" КАК Строка,
"20221231235959" КАК Строка1
ПОМЕСТИТЬ Дано
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
02 КАК НомерСтроки,
"20260827140942" КАК Строка,
"20221201000000" КАК Строка1
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
03 КАК НомерСтроки,
"20250626010517" КАК Строка,
"20230318122825" КАК Строка1
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
04 КАК НомерСтроки,
"20251105201511" КАК Строка,
"20230105155243" КАК Строка1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
0 КАК Х,
0 КАК Д,
0 КАК М,
1000 КАК Г
ПОМЕСТИТЬ Формат
ОБЪЕДИНИТЬ
ВЫБРАТЬ
1 КАК Х,
0 КАК Д,
0 КАК М,
100 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
2 КАК Х,
0 КАК Д,
0 КАК М,
10 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
3 КАК Х,
0 КАК Д,
0 КАК М,
1 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
4 КАК Х,
0 КАК Д,
10 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
5 КАК Х,
0 КАК Д,
1 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
6 КАК Х,
10 КАК Д,
0 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
7 КАК Х,
1 КАК Д,
0 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
8 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
9 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Дано.НомерСтроки КАК НомерСтроки,
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
ДЕНЬ,
СУММА(А.Д * Б.Х) - 1
),
МЕСЯЦ,
СУММА(А.М * Б.Х) - 1
),
ГОД,
СУММА(А.Г * Б.Х) - 1
) КАК Ответ
ПОМЕСТИТЬ ВТ_Ответ
ИЗ
Дано КАК Дано,
Формат КАК А,
Формат КАК Б
ГДЕ ИСТИНА
И А.Х < 9
И Б.Х < 10
И ПОДСТРОКА(Дано.Строка, А.Х + 1, 1) =
ПОДСТРОКА("0123456789", Б.Х + 1, 1)
СГРУППИРОВАТЬ ПО
Дано.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Дано.НомерСтроки КАК НомерСтроки,
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
ДЕНЬ,
СУММА(А.Д * Б.Х) - 1
),
МЕСЯЦ,
СУММА(А.М * Б.Х) - 1
),
ГОД,
СУММА(А.Г * Б.Х) - 1
) КАК Ответ1
ПОМЕСТИТЬ ВТ_Ответ1
ИЗ
Дано КАК Дано,
Формат КАК А,
Формат КАК Б
ГДЕ ИСТИНА
И А.Х < 9
И Б.Х < 10
И ПОДСТРОКА(Дано.Строка1, А.Х + 1, 1) =
ПОДСТРОКА("0123456789", Б.Х + 1, 1)
СГРУППИРОВАТЬ ПО
Дано.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
тОтвет.НомерСтроки,
тОтвет.Ответ,
тОтвет1.Ответ1
ИЗ
ВТ_Ответ КАК тОтвет
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
ВТ_Ответ1 КАК тОтвет1
ПО тОтвет.НомерСтроки = тОтвет1.НомерСтроки
ВЫБРАТЬ
01 КАК НомерСтроки,
"20260105170929" КАК Строка,
"20221231235959" КАК Строка1
ПОМЕСТИТЬ Дано
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
02 КАК НомерСтроки,
"20260827140942" КАК Строка,
"20221201000000" КАК Строка1
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
03 КАК НомерСтроки,
"20250626010517" КАК Строка,
"20230318122825" КАК Строка1
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
04 КАК НомерСтроки,
"20251105201511" КАК Строка,
"20230105155243" КАК Строка1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
0 КАК Х,
0 КАК Д,
0 КАК М,
1000 КАК Г
ПОМЕСТИТЬ Формат
ОБЪЕДИНИТЬ
ВЫБРАТЬ
1 КАК Х,
0 КАК Д,
0 КАК М,
100 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
2 КАК Х,
0 КАК Д,
0 КАК М,
10 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
3 КАК Х,
0 КАК Д,
0 КАК М,
1 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
4 КАК Х,
0 КАК Д,
10 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
5 КАК Х,
0 КАК Д,
1 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
6 КАК Х,
10 КАК Д,
0 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
7 КАК Х,
1 КАК Д,
0 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
8 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
9 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Дано.НомерСтроки КАК НомерСтроки,
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
ДЕНЬ,
СУММА(А.Д * Б.Х) - 1
),
МЕСЯЦ,
СУММА(А.М * Б.Х) - 1
),
ГОД,
СУММА(А.Г * Б.Х) - 1
) КАК Ответ
ПОМЕСТИТЬ ВТ_Ответ
ИЗ
Дано КАК Дано,
Формат КАК А,
Формат КАК Б
ГДЕ ИСТИНА
И А.Х < 9
И Б.Х < 10
И ПОДСТРОКА(Дано.Строка, А.Х + 1, 1) =
ПОДСТРОКА("0123456789", Б.Х + 1, 1)
СГРУППИРОВАТЬ ПО
Дано.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Дано.НомерСтроки КАК НомерСтроки,
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
ДЕНЬ,
СУММА(А.Д * Б.Х) - 1
),
МЕСЯЦ,
СУММА(А.М * Б.Х) - 1
),
ГОД,
СУММА(А.Г * Б.Х) - 1
) КАК Ответ1
ПОМЕСТИТЬ ВТ_Ответ1
ИЗ
Дано КАК Дано,
Формат КАК А,
Формат КАК Б
ГДЕ ИСТИНА
И А.Х < 9
И Б.Х < 10
И ПОДСТРОКА(Дано.Строка1, А.Х + 1, 1) =
ПОДСТРОКА("0123456789", Б.Х + 1, 1)
СГРУППИРОВАТЬ ПО
Дано.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
тОтвет.НомерСтроки,
тОтвет.Ответ,
тОтвет1.Ответ1
ИЗ
ВТ_Ответ КАК тОтвет
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
ВТ_Ответ1 КАК тОтвет1
ПО тОтвет.НомерСтроки = тОтвет1.НомерСтроки
Запрос Преобразовать конвертировать строку в ДатаВремя "ГГГГММДДЧЧННСС" Запросом из Строки
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
01 КАК НомерСтроки,
"20260105170929" КАК Строка,
"20221231235959" КАК Строка1
ПОМЕСТИТЬ Дано
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
02 КАК НомерСтроки,
"20260827140942" КАК Строка,
"20221201000000" КАК Строка1
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
03 КАК НомерСтроки,
"20250626010517" КАК Строка,
"20230318122825" КАК Строка1
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
04 КАК НомерСтроки,
"20251105201511" КАК Строка,
"20230105155243" КАК Строка1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
0 КАК Х,
0 КАК Д,
0 КАК М,
1000 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ПОМЕСТИТЬ Формат
ОБЪЕДИНИТЬ
ВЫБРАТЬ
1 КАК Х,
0 КАК Д,
0 КАК М,
100 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
2 КАК Х,
0 КАК Д,
0 КАК М,
10 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
3 КАК Х,
0 КАК Д,
0 КАК М,
1 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
4 КАК Х,
0 КАК Д,
10 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
5 КАК Х,
0 КАК Д,
1 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
6 КАК Х,
10 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
7 КАК Х,
1 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
8 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
10 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
9 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
1 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
10 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
10 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
11 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
1 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
12 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
10 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
13 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
1 КАК С
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Дано.НомерСтроки,
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
СЕКУНДА,
СУММА(А.С * Б.Х)
),
МИНУТА,
СУММА(А.Н * Б.Х)
),
ЧАС,
СУММА(А.Ч * Б.Х)
),
ДЕНЬ,
СУММА(А.Д * Б.Х) - 1
),
МЕСЯЦ,
СУММА(А.М * Б.Х) - 1
),
ГОД,
СУММА(А.Г * Б.Х) - 1
) КАК Ответ
ПОМЕСТИТЬ ВТ_Ответ
ИЗ
Дано КАК Дано,
Формат КАК А,
Формат КАК Б
ГДЕ ИСТИНА
И А.Х < 14
И Б.Х < 10
И ПОДСТРОКА(Дано.Строка, А.Х + 1, 1) =
ПОДСТРОКА("0123456789", Б.Х + 1, 1)
СГРУППИРОВАТЬ ПО
Дано.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Дано.НомерСтроки,
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
СЕКУНДА,
СУММА(А.С * Б.Х)
),
МИНУТА,
СУММА(А.Н * Б.Х)
),
ЧАС,
СУММА(А.Ч * Б.Х)
),
ДЕНЬ,
СУММА(А.Д * Б.Х) - 1
),
МЕСЯЦ,
СУММА(А.М * Б.Х) - 1
),
ГОД,
СУММА(А.Г * Б.Х) - 1
) КАК Ответ1
ПОМЕСТИТЬ ВТ_Ответ1
ИЗ
Дано КАК Дано,
Формат КАК А,
Формат КАК Б
ГДЕ ИСТИНА
И А.Х < 14
И Б.Х < 10
И ПОДСТРОКА(Дано.Строка1, А.Х + 1, 1) =
ПОДСТРОКА("0123456789", Б.Х + 1, 1)
СГРУППИРОВАТЬ ПО
Дано.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
тОтвет.НомерСтроки,
тОтвет.Ответ,
тОтвет1.Ответ1
ИЗ
ВТ_Ответ КАК тОтвет
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
ВТ_Ответ1 КАК тОтвет1
ПО тОтвет.НомерСтроки = тОтвет1.НомерСтроки
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
01 КАК НомерСтроки,
"20260105170929" КАК Строка,
"20221231235959" КАК Строка1
ПОМЕСТИТЬ Дано
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
02 КАК НомерСтроки,
"20260827140942" КАК Строка,
"20221201000000" КАК Строка1
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
03 КАК НомерСтроки,
"20250626010517" КАК Строка,
"20230318122825" КАК Строка1
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
04 КАК НомерСтроки,
"20251105201511" КАК Строка,
"20230105155243" КАК Строка1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
0 КАК Х,
0 КАК Д,
0 КАК М,
1000 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ПОМЕСТИТЬ Формат
ОБЪЕДИНИТЬ
ВЫБРАТЬ
1 КАК Х,
0 КАК Д,
0 КАК М,
100 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
2 КАК Х,
0 КАК Д,
0 КАК М,
10 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
3 КАК Х,
0 КАК Д,
0 КАК М,
1 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
4 КАК Х,
0 КАК Д,
10 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
5 КАК Х,
0 КАК Д,
1 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
6 КАК Х,
10 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
7 КАК Х,
1 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
8 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
10 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
9 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
1 КАК Ч,
0 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
10 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
10 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
11 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
1 КАК Н,
0 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
12 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
10 КАК С
ОБЪЕДИНИТЬ
ВЫБРАТЬ
13 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г,
0 КАК Ч,
0 КАК Н,
1 КАК С
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Дано.НомерСтроки,
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
СЕКУНДА,
СУММА(А.С * Б.Х)
),
МИНУТА,
СУММА(А.Н * Б.Х)
),
ЧАС,
СУММА(А.Ч * Б.Х)
),
ДЕНЬ,
СУММА(А.Д * Б.Х) - 1
),
МЕСЯЦ,
СУММА(А.М * Б.Х) - 1
),
ГОД,
СУММА(А.Г * Б.Х) - 1
) КАК Ответ
ПОМЕСТИТЬ ВТ_Ответ
ИЗ
Дано КАК Дано,
Формат КАК А,
Формат КАК Б
ГДЕ ИСТИНА
И А.Х < 14
И Б.Х < 10
И ПОДСТРОКА(Дано.Строка, А.Х + 1, 1) =
ПОДСТРОКА("0123456789", Б.Х + 1, 1)
СГРУППИРОВАТЬ ПО
Дано.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Дано.НомерСтроки,
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
СЕКУНДА,
СУММА(А.С * Б.Х)
),
МИНУТА,
СУММА(А.Н * Б.Х)
),
ЧАС,
СУММА(А.Ч * Б.Х)
),
ДЕНЬ,
СУММА(А.Д * Б.Х) - 1
),
МЕСЯЦ,
СУММА(А.М * Б.Х) - 1
),
ГОД,
СУММА(А.Г * Б.Х) - 1
) КАК Ответ1
ПОМЕСТИТЬ ВТ_Ответ1
ИЗ
Дано КАК Дано,
Формат КАК А,
Формат КАК Б
ГДЕ ИСТИНА
И А.Х < 14
И Б.Х < 10
И ПОДСТРОКА(Дано.Строка1, А.Х + 1, 1) =
ПОДСТРОКА("0123456789", Б.Х + 1, 1)
СГРУППИРОВАТЬ ПО
Дано.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
тОтвет.НомерСтроки,
тОтвет.Ответ,
тОтвет1.Ответ1
ИЗ
ВТ_Ответ КАК тОтвет
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
ВТ_Ответ1 КАК тОтвет1
ПО тОтвет.НомерСтроки = тОтвет1.НомерСтроки
Иногда заказчик просит вывести доп. реквизит на форме в определенном месте. Много раз видел, как разработчики создают программный реквизит и заполняют его при открытии формы и переписывают его значение в доп. реквизит при закрытии, что совершенно некоррект...
При использовании системы контроля версий Git эта команда адаптера открывает в приложении ИР инструмент "История Гита" и запускает в нем поиск выделенного в модуле фрагмента. По умолчанию поиск ведется внутри версий текущего модуля, но можно отключить этот...
Довольно часто, анализируя код, возникает вопрос "Кто когда и какие изменения внес в него последний раз?". Для ответа на этот вопрос при использовании системы контроля версий Git можно использовать данную команду адаптера.
Эта команда
Находит коммит, котор...
Функция ЭтаСсылкаВИерархии(Ссылка,Родитель) Экспорт
Запрос = Новый Запрос;
ТекстЗапроса = ВЫБРАТЬ
| ТаблицаИсточник.Ссылка КАК Ссылка
|ИЗ
| ИмяСправочника КАК ТаблицаИсточник
|ГДЕ
| ТаблицаИсточник.Ссылка В ИЕРАРХИИ(Родитель)
| И ТаблицаИсточник.Ссылка = С...
Функция ПодготовитьМаркировочныеЛистыССериями(ДокументСсылка,Порядок=0) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| ЗаказКлиентаТовары.Ссылка КАК ЗаказСсылка,
| ЗаказКлиентаТовары.Серия КАК Серия,
| ЗаказКлиентаТовары.КодСтроки КАК КодСтроки,
| ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
| ЗаказКлиентаТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| ЗаказКлиентаТовары.Количество КАК Количество
|ПОМЕСТИТЬ ТоварыЗаказа
|ИЗ
| Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
|ГДЕ
| ЗаказКлиентаТовары.Ссылка = &ДокументСсылка
|;
|ВЫБРАТЬ
| CG_Online_ЗаказыКлиентовСервисовТовары.НомерЗаказа КАК НомерЗаказа,
| CG_Online_ЗаказыКлиентовСервисовТовары.НомерОтправления КАК НомерОтправления,
| CG_Online_ЗаказыКлиентовСервисовТовары.Артикул КАК Артикул,
| CG_Online_ЗаказыКлиентовСервисовТовары.Товар КАК Товар,
| CG_Online_ЗаказыКлиентовСервисовТовары.УчетнаяЗапись КАК УчетнаяЗапись,
| CG_Online_ЗаказыКлиентовСервисовТовары.ЗаказКлиентаСервиса КАК ЗаказКлиентаСервиса,
| CG_Online_ЗаказыКлиентовСервисовТовары.ЗаказКлиента КАК ЗаказКлиента,
| CG_Online_ЗаказыКлиентовСервисовТовары.КодСтроки КАК КодСтроки,
| CG_Online_ЗаказыКлиентовСервисовТовары.Отменено КАК Отменено,
| CG_Online_IWS_НоменклатураСервисов.Номенклатура КАК Номенклатура,
| CG_Online_IWS_НоменклатураСервисов.Упаковка КАК Упаковка,
| CG_Online_ЗаказыКлиентовСервисовТовары.Количество КАК Количество,
| CG_Online_IWS_НоменклатураСервисов.Характеристика КАК Характеристика,
| CG_Online_ЗаказыКлиентовСервисовТовары.Количество КАК КоличествоУпаковок
|ПОМЕСТИТЬ СписокЗаказов
|ИЗ
| РегистрСведений.CG_Online_ЗаказыКлиентовСервисовТовары КАК CG_Online_ЗаказыКлиентовСервисовТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.CG_Online_IWS_НоменклатураСервисов КАК CG_Online_IWS_НоменклатураСервисов
| ПО CG_Online_ЗаказыКлиентовСервисовТовары.Товар = CG_Online_IWS_НоменклатураСервисов.Ссылка
|ГДЕ
| CG_Online_ЗаказыКлиентовСервисовТовары.ЗаказКлиента = &ДокументСсылка
|;
|
|ВЫБРАТЬ
| СписокЗаказов.НомерЗаказа КАК НомерЗаказа,
| СписокЗаказов.НомерОтправления КАК НомерОтправления,
| СписокЗаказов.Товар КАК Товар,
| СписокЗаказов.Артикул КАК Артикул,
| СписокЗаказов.УчетнаяЗапись КАК УчетнаяЗапись,
| СписокЗаказов.ЗаказКлиентаСервиса КАК ЗаказКлиентаСервиса,
| СписокЗаказов.ЗаказКлиента КАК ЗаказКлиента,
| СписокЗаказов.КодСтроки КАК КодСтроки,
| СписокЗаказов.Отменено КАК Отменено,
| ЗаказКлиентаТовары.Серия КАК Серия,
| СписокЗаказов.Номенклатура КАК Номенклатура,
| СписокЗаказов.Упаковка КАК Упаковка,
| СписокЗаказов.Характеристика КАК Характеристика,
| СписокЗаказов.Количество КАК КоличествоУпаковок,
| ЗаказКлиентаТовары.Количество КАК Количество
|ПОМЕСТИТЬ СписокЗаказовССериями
|ИЗ
| СписокЗаказов КАК СписокЗаказов
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыЗаказа КАК ЗаказКлиентаТовары
| ПО СписокЗаказов.ЗаказКлиента = ЗаказКлиентаТовары.ЗаказСсылка
| И СписокЗаказов.КодСтроки = ЗаказКлиентаТовары.КодСтроки
| И СписокЗаказов.Номенклатура = ЗаказКлиентаТовары.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СписокЗаказов.УчетнаяЗапись КАК УчетнаяЗапись,
| СписокЗаказов.ЗаказКлиента КАК ЗаказКлиента,
| СписокЗаказов.ЗаказКлиентаСервиса КАК ЗаказКлиентаСервиса,
| ЗаказыКлиентовСервисовМаркировкаТоваров.МаркировочныйЛист КАК МаркировочныйЛист,
| ЗаказыКлиентовСервисовМаркировкаТоваров.СтикерЧастьА КАК СтикерЧастьА,
| ЗаказыКлиентовСервисовМаркировкаТоваров.СтикерЧастьВ КАК СтикерЧастьВ,
| ЗаказыКлиентовСервисовМаркировкаТоваров.СтикерЗначение КАК СтикерЗначение,
| СписокЗаказов.Артикул КАК Артикул,
| СписокЗаказов.Товар КАК Товар,
| СписокЗаказов.НомерЗаказа КАК НомерЗаказа,
| СписокЗаказов.НомерОтправления КАК НомерОтправления,
| СписокЗаказов.Количество КАК Количество,
| СписокЗаказов.КодСтроки КАК КодСтроки,
| СписокЗаказов.Отменено КАК Отменено,
| СписокЗаказов.Серия КАК Серия,
| СписокЗаказов.Номенклатура КАК Номенклатура,
| СписокЗаказов.Упаковка КАК Упаковка,
| СписокЗаказов.Характеристика КАК Характеристика,
| СписокЗаказов.КоличествоУпаковок КАК КоличествоУпаковок
|ИЗ
| СписокЗаказовССериями КАК СписокЗаказов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.CG_Online_ЗаказыКлиентовСервисовМаркировкаТоваров КАК ЗаказыКлиентовСервисовМаркировкаТоваров
| ПО СписокЗаказов.НомерЗаказа = ЗаказыКлиентовСервисовМаркировкаТоваров.НомерЗаказа
| И СписокЗаказов.НомерОтправления = ЗаказыКлиентовСервисовМаркировкаТоваров.НомерОтправления
| И СписокЗаказов.Товар = ЗаказыКлиентовСервисовМаркировкаТоваров.Товар
|
|ГДЕ
| не СписокЗаказов.Отменено
|УПОРЯДОЧИТЬ ПО
| Товар,
| Серия,
| Артикул,
| НомерЗаказа,
| НомерОтправления";
Функция ПодготовитьМаркировочныеЛистыССериями(ДокументСсылка,Порядок=0) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| ЗаказКлиентаТовары.Ссылка КАК ЗаказСсылка,
| ЗаказКлиентаТовары.Серия КАК Серия,
| ЗаказКлиентаТовары.КодСтроки КАК КодСтроки,
| ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
| ЗаказКлиентаТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| ЗаказКлиентаТовары.Количество КАК Количество
|ПОМЕСТИТЬ ТоварыЗаказа
|ИЗ
| Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
|ГДЕ
| ЗаказКлиентаТовары.Ссылка = &ДокументСсылка
|;
|ВЫБРАТЬ
| CG_Online_ЗаказыКлиентовСервисовТовары.НомерЗаказа КАК НомерЗаказа,
| CG_Online_ЗаказыКлиентовСервисовТовары.НомерОтправления КАК НомерОтправления,
| CG_Online_ЗаказыКлиентовСервисовТовары.Артикул КАК Артикул,
| CG_Online_ЗаказыКлиентовСервисовТовары.Товар КАК Товар,
| CG_Online_ЗаказыКлиентовСервисовТовары.УчетнаяЗапись КАК УчетнаяЗапись,
| CG_Online_ЗаказыКлиентовСервисовТовары.ЗаказКлиентаСервиса КАК ЗаказКлиентаСервиса,
| CG_Online_ЗаказыКлиентовСервисовТовары.ЗаказКлиента КАК ЗаказКлиента,
| CG_Online_ЗаказыКлиентовСервисовТовары.КодСтроки КАК КодСтроки,
| CG_Online_ЗаказыКлиентовСервисовТовары.Отменено КАК Отменено,
| CG_Online_IWS_НоменклатураСервисов.Номенклатура КАК Номенклатура,
| CG_Online_IWS_НоменклатураСервисов.Упаковка КАК Упаковка,
| CG_Online_ЗаказыКлиентовСервисовТовары.Количество КАК Количество,
| CG_Online_IWS_НоменклатураСервисов.Характеристика КАК Характеристика,
| CG_Online_ЗаказыКлиентовСервисовТовары.Количество КАК КоличествоУпаковок
|ПОМЕСТИТЬ СписокЗаказов
|ИЗ
| РегистрСведений.CG_Online_ЗаказыКлиентовСервисовТовары КАК CG_Online_ЗаказыКлиентовСервисовТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.CG_Online_IWS_НоменклатураСервисов КАК CG_Online_IWS_НоменклатураСервисов
| ПО CG_Online_ЗаказыКлиентовСервисовТовары.Товар = CG_Online_IWS_НоменклатураСервисов.Ссылка
|ГДЕ
| CG_Online_ЗаказыКлиентовСервисовТовары.ЗаказКлиента = &ДокументСсылка
|;
|
|ВЫБРАТЬ
| СписокЗаказов.НомерЗаказа КАК НомерЗаказа,
| СписокЗаказов.НомерОтправления КАК НомерОтправления,
| СписокЗаказов.Товар КАК Товар,
| СписокЗаказов.Артикул КАК Артикул,
| СписокЗаказов.УчетнаяЗапись КАК УчетнаяЗапись,
| СписокЗаказов.ЗаказКлиентаСервиса КАК ЗаказКлиентаСервиса,
| СписокЗаказов.ЗаказКлиента КАК ЗаказКлиента,
| СписокЗаказов.КодСтроки КАК КодСтроки,
| СписокЗаказов.Отменено КАК Отменено,
| ЗаказКлиентаТовары.Серия КАК Серия,
| СписокЗаказов.Номенклатура КАК Номенклатура,
| СписокЗаказов.Упаковка КАК Упаковка,
| СписокЗаказов.Характеристика КАК Характеристика,
| СписокЗаказов.Количество КАК КоличествоУпаковок,
| ЗаказКлиентаТовары.Количество КАК Количество
|ПОМЕСТИТЬ СписокЗаказовССериями
|ИЗ
| СписокЗаказов КАК СписокЗаказов
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыЗаказа КАК ЗаказКлиентаТовары
| ПО СписокЗаказов.ЗаказКлиента = ЗаказКлиентаТовары.ЗаказСсылка
| И СписокЗаказов.КодСтроки = ЗаказКлиентаТовары.КодСтроки
| И СписокЗаказов.Номенклатура = ЗаказКлиентаТовары.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СписокЗаказов.УчетнаяЗапись КАК УчетнаяЗапись,
| СписокЗаказов.ЗаказКлиента КАК ЗаказКлиента,
| СписокЗаказов.ЗаказКлиентаСервиса КАК ЗаказКлиентаСервиса,
| ЗаказыКлиентовСервисовМаркировкаТоваров.МаркировочныйЛист КАК МаркировочныйЛист,
| ЗаказыКлиентовСервисовМаркировкаТоваров.СтикерЧастьА КАК СтикерЧастьА,
| ЗаказыКлиентовСервисовМаркировкаТоваров.СтикерЧастьВ КАК СтикерЧастьВ,
| ЗаказыКлиентовСервисовМаркировкаТоваров.СтикерЗначение КАК СтикерЗначение,
| СписокЗаказов.Артикул КАК Артикул,
| СписокЗаказов.Товар КАК Товар,
| СписокЗаказов.НомерЗаказа КАК НомерЗаказа,
| СписокЗаказов.НомерОтправления КАК НомерОтправления,
| СписокЗаказов.Количество КАК Количество,
| СписокЗаказов.КодСтроки КАК КодСтроки,
| СписокЗаказов.Отменено КАК Отменено,
| СписокЗаказов.Серия КАК Серия,
| СписокЗаказов.Номенклатура КАК Номенклатура,
| СписокЗаказов.Упаковка КАК Упаковка,
| СписокЗаказов.Характеристика КАК Характеристика,
| СписокЗаказов.КоличествоУпаковок КАК КоличествоУпаковок
|ИЗ
| СписокЗаказовССериями КАК СписокЗаказов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.CG_Online_ЗаказыКлиентовСервисовМаркировкаТоваров КАК ЗаказыКлиентовСервисовМаркировкаТоваров
| ПО СписокЗаказов.НомерЗаказа = ЗаказыКлиентовСервисовМаркировкаТоваров.НомерЗаказа
| И СписокЗаказов.НомерОтправления = ЗаказыКлиентовСервисовМаркировкаТоваров.НомерОтправления
| И СписокЗаказов.Товар = ЗаказыКлиентовСервисовМаркировкаТоваров.Товар
|
|ГДЕ
| не СписокЗаказов.Отменено
|УПОРЯДОЧИТЬ ПО
| Товар,
| Серия,
| Артикул,
| НомерЗаказа,
| НомерОтправления";
Эта кнопка адаптера открывает модальное окно дерева элементов окна "Параметры". Это дерево позволяет быстро найти элемент и при его выборе закрывается и активирует его страницу в окне "Параметры".
Эта команда ИР адаптера в режиме остановки отладки вычисляет значения всех выражений без скобок в текущей строке модуля. Она выводит расширенные представления этих значений во всплывающей подсказке аналогично команде Вычислить выражение, но не оставляет ок...
Запрос = Новый Запрос;
Запрос.Текст = ВЫБРАТЬ *
|ПОМЕСТИТЬ ВТ_ТЗ
|ИЗ
| ТЗ КАК ТЗ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ ВТ_ТЗ.(Колонка)
|ИЗ
| ВТ_ТЗ КАК ВТ_ТЗ
|;
Запр...
Включает/отключает в окнах текстовых документов панель с отображением номеров строк
Две экспортные функции для удобной работы с JSON.
1. Преобразовать строку JSON в структуру или соответствие
2. Преобразовать структуру в строку JSON (или записать в файл)
Функция JSONВСтруктуру(СтрокаJSON, ПрочитатьВСоответствие=Ложь) Экспорт
Если Пу...