Накопитель функций для библиотеки функций
Медатанные
2024-06-24 проверка наличия реквизита объекта (справочника, документа).
Функция ЕстьРеквизитОбъекта(ИмяРеквизита, Объект) Экспорт //Осипов С.А. 2024-06-24. Протестировано МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(Объект)); Если МетаданныеОбъекта = Неопределено Тогда Возврат Ложь; КонецЕсли; Если МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда Возврат Ложь; Иначе Возврат Истина; КонецЕсли; КонецФункции
Форматирование чисел, дат
2024-06-12 типовая функция 1С по форме множественного числа
// Функция преобразует строку к множественному числу // // Параметры: // Слово1 - форма слова в ед числе ("шкаф") // Слово2 - форма слова для числит 2-4 ("шкафа") // Слово3 - форма слова для числит 5-10 ("шкафов") // ЦелоеЧисло - целое число. // // Возвращаемое значение: // строку - одну из строк в зависимости от параметра ЦелоеЧисло. // // Описание: // Предназначена для формирования "правильной" подписи к числительным. // Функция ФормаМножественногоЧисла(Слово1, Слово2, Слово3, Знач ЦелоеЧисло) Экспорт // Изменим знак целого числа, иначе отрицательные числа будут неправильно преобразовываться. Если ЦелоеЧисло < 0 Тогда ЦелоеЧисло = -1 * ЦелоеЧисло; КонецЕсли; Если ЦелоеЧисло <> Цел(ЦелоеЧисло) Тогда // для нецелых чисел - всегда вторая форма Возврат Слово2; КонецЕсли; // остаток Остаток = ЦелоеЧисло%10; Если (ЦелоеЧисло >10) И (ЦелоеЧисло<20) Тогда // для второго десятка - всегда третья форма Возврат Слово3; ИначеЕсли Остаток=1 Тогда Возврат Слово1; ИначеЕсли (Остаток>1) И (Остаток<5) Тогда Возврат Слово2; Иначе Возврат Слово3; КонецЕсли; КонецФункции
Универсальные коллекции
2024-05-31 Свойство структуры
Функция СвойствоСтруктуры(Структура, Свойство, ПоУмолчанию = Неопределено) Экспорт Если Структура <> Неопределено И Структура.Свойство(Свойство) Тогда Возврат Структура[Свойство]; КонецЕсли; Возврат ПоУмолчанию; КонецФункции
Работа с табличным документом
2024-05-30 Удаление строк табличного документа по маркеру
Процедура ОчиститьСтрокиТабличногоДокументаСодержащиеМаркер(ДокументРезультат, Маркер, ЯчейкаЦеликом = истина) Экспорт Пока Истина Цикл Область = ДокументРезультат.НайтиТекст(Маркер,,,, ЯчейкаЦеликом); Если Область = Неопределено Тогда Возврат; КонецЕсли; //ОбластьСтрока = ДокументРезультат.Область(Область.Верх, 1, Область.Верх ,ДокументРезультат.ШиринаТаблицы); ОбластьСтрока = ДокументРезультат.Область("R" + XMLСтрока(Область.Верх)); ДокументРезультат.УдалитьОбласть(ОбластьСтрока, ТипСмещенияТабличногоДокумента.ПоВертикали); КонецЦикла; КонецПроцедуры
Обработка регистров
2024-05-29. Удаление движений документа
Процедура УдалитьДвиженияДокумента(ДокументОбъект) Экспорт Для Каждого НЗ ИЗ ДокументОбъект.Движения Цикл НЗ.Прочитать(); Если НЗ.Количество() > 0 Тогда НЗ.Очистить(); НЗ.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры
![](https://geniy1s.ru/wp-content/uploads/2024/05/image-115-1024x610.png)
Для удаления движений документа не нужен ни объект документа, ни чтения набора записей регистра.
А вообще вместо изобретений велосипедов — изучать БСП.
я собираю свою библиотеку функций. БСП вроде бы заявила, что ее можно без ИТС использовать, но это не точно.
Первую часть замечаний почему проигнорировал?
не понял о чем она. Там ведь не содержится информации — только отрицание приведенной информации. Если расскажете, что вы имеете ввиду, будут и комментарии.