ТаблицаЗначений. Проверка дублей.

Публикация № 236073 07.11.13

Разработка - Универсальные функции

Проверка дублей ТаблицаЗначений

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

Потребовалось проверить таблицу значений на наличие дублей строк.

Поначалу, как обычно, в каждом отдельном случае писалась своя функция. Но вот это надоело, и была сделана попытка создать универсальную функцию, помещенную в общий модуль, которая по переданной ей таблице значений, наименованию или списку колонок проверяет наличие дублирующих строк.

В случае, если параметр "КонтролируемаяКолонка" не передан, проверка осуществляется по всем колонкам.

Так же имеется параметр, позволяющий исключить колонку "НомерСтроки" из проверки - подразумевается использование при создании проверяемой таблицы значений на основе табличной части.

 

Собственно, код ниже.

Буду рад комментариям.

// функция проверяет дубли строк таблицы значений по контролируемым колонкам
// Параметры:
// ТабЧасть - таблица значений
// КонтролируемаяКолонка - строка, списокЗначений - Наименование колонок;
// ТекстВозврата - переменная, куда будет возвращено значение
// УдалятьНомерСтроки - не учитывать колонку НомерСтроки, в случае, если не передан список колонок.
// Возвращаемые значения:
// в случае отсутствия дублей - ложь
// в случае наличия дублей - истина и в параметр "ТекстВозврата" записывается строковое значение дублей

Функция ПроверкаДублей(ТабЧасть, КонтролируемаяКолонка = Неопределено, ТекстВозврата = "", УдалятьНомерСтроки = Истина) Экспорт

   
ЕстьДубли = Ложь;

    Если
ТипЗнч(ТабЧасть) = Тип("ТаблицаЗначений") тогда

        Если
ТипЗнч(КонтролируемаяКолонка) = Тип("Строка") тогда
           
СтрокаСвертки = СокрЛП(КонтролируемаяКолонка);
        ИначеЕсли
ТипЗнч(КонтролируемаяКолонка) = Тип("СписокЗначений") тогда
           
СтрокаСвертки = "";
            Для
индекс = 0 по КонтролируемаяКолонка.Количество()-1 Цикл
                Если
Индекс > 0 тогда
                   
СтрокаСвертки = СтрокаСвертки + ", ";
                КонецЕсли;
               
СтрокаСвертки = СтрокаСвертки + СокрЛП(КонтролируемаяКолонка[Индекс]);
            КонецЦикла;
        Иначе
           
// проверяем на полные дубли
           
СтрокаСвертки = "";
           
ПерваяКолонка = Истина;
            Для
индекс = 0 по ТабЧасть.Колонки.Количество()-1 Цикл
                Если
УдалятьНомерСтроки и СокрЛП(ТабЧасть.Колонки[Индекс].Имя) = "НомерСтроки" тогда
                    Продолжить;
                КонецЕсли;
                Если не
ПерваяКолонка тогда
                   
СтрокаСвертки = СтрокаСвертки + ", ";
                КонецЕсли;
               
СтрокаСвертки = СтрокаСвертки + СокрЛП(ТабЧасть.Колонки[Индекс].Имя);
               
ПерваяКолонка = Ложь;
            КонецЦикла;
        КонецЕсли;

       
тз = ТабЧасть.Скопировать();
       
тз.Колонки.Добавить("_КолонкаЕдиницы", Новый ОписаниеТипов(Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный)));
       
тз.ЗаполнитьЗначения(1,"_КолонкаЕдиницы");
       
тз.Свернуть(СтрокаСвертки, "_КолонкаЕдиницы");

        для каждого
стр из тз цикл
            Если
стр._КолонкаЕдиницы > 1 Тогда
               
ТекстВозврата = ТекстВозврата + "Дублирование строк: ";
               
ЕстьДубли = Истина;
                Для
ИндексКол = 0 по тз.колонки.Количество() - 1 цикл
                    Если
тз.колонки[ИндексКол].Имя = "_КолонкаЕдиницы" тогда
                       
ТекстВозврата = ТекстВозврата + " - найдено "+стр._КолонкаЕдиницы+" стр."+Символы.ПС;
                    Иначе
                        Если
ИндексКол > 0 тогда
                           
ТекстВозврата = ТекстВозврата + "; ";
                        КонецЕсли;
                       
ТекстВозврата = ТекстВозврата + Строка(стр[ИндексКол]);
                    КонецЕсли;
                Конеццикла;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;

    Возврат
ЕстьДубли;

КонецФункции

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. 13jaguar 94 13.11.13 07:04 Сейчас в теме
Было бы неплохо выдавать в результате список строк с дублями. Примерно как выдает функция НайтиСтроки(). Потом проверка резульаьта на пустоту, и если он пустой, значит дублей нет. А так идея, на мой взгляд, правильная.
2. razin 40 13.11.13 07:59 Сейчас в теме
Спасибо. :)
На самом деле он формирует строки дублей, но в строке.
Можно переделать, что-бы возвращался список строк. немного усложнить алгоритм.
в блоке, где идет формирование строки для вывода добавить формирование отбора

для каждого стр из тз цикл
 Если стр._КолонкаЕдиницы > 1 Тогда
  ТекстВозврата = ТекстВозврата + "Дублирование строк: ";
  ЕстьДубли = Истина;
				
  // Создадим отбор
  Отбор = Новый Структура;
  //отбор
				
  Для ИндексКол = 0 по тз.колонки.Количество() - 1 цикл
     Если тз.колонки[ИндексКол].Имя = "_КолонкаЕдиницы" тогда
        ТекстВозврата = ТекстВозврата + " - найдено "+стр._КолонкаЕдиницы+" стр."+Символы.ПС;
     Иначе
	// добавим в структуру отбора значение этой колонки
	Отбор.Вставить(тз.колонки[ИндексКол].Имя, стр[ИндексКол]);
	// отбор
						
	Если ИндексКол > 0 тогда
          ТекстВозврата = ТекстВозврата + "; ";
        КонецЕсли;
        ТекстВозврата = ТекстВозврата + Строка(стр[ИндексКол]);
      КонецЕсли;
  Конеццикла;
			
// тут у нас есть структура отбора можем ее использовать для поиска строк в первоначальной таблице
       массивДублей = ТабЧасть.НайтиСтроки(Отбор);
// теперь в переменной массивДублей у нас лежат строки, соотретствующие задублированным ПО ОДНОМУ УСЛОВИЮ!!!
// дальше его можно или поместить в СписокЗначений или в ТаблицуЗначений, которую передать в параметре.
// Допустим, так:
// в параметры функции добавляем : "СписокСтрокДублей = Новый СписокЗначений"
// ну а тут :
// СписокСтрокДублей.Добавить(массивДублей, стр._КолонкаЕдиницы);
// тогда на выходе у нас будет список значений, в котором представление элемента списка - это количество 
// задублированных строк, а значение - массив СтрокТабличнойЧасти.
// Ну, как-то так... :)
			
 КонецЕсли;
КонецЦикла;
Показать
3. Kov495 11 13.11.13 09:21 Сейчас в теме
А может стоит сделать запрос по таблице с группировкой по всем колонкам и суммой количества?
Таким образом получив значения строк дублей?
4. razin 40 13.11.13 10:12 Сейчас в теме
Можно. только тогда надо описывать все типы в таблице :( пробовал запросом - с разбегу у меня не получилось...
типа

Выбрать * ИЗ тз
поместить ВременнаяТаблица
из &Таблица как тз

и из нее потом группировать?

там тогда запрос лучше ручками генерить. :( долго - я помучался с этим и бросил - решил на циклах сделать :)
5. mxm2 1240 13.11.13 10:20 Сейчас в теме
... просто выянить наличие дублей можно оценив изменение количества строк ТЗ после сворачивания.
levante90; fomix; razin; +3 Ответить
6. razin 40 13.11.13 10:48 Сейчас в теме
(5) - шикарное решение.
если нужна просто проверка на наличие факта дублей без расшифровки - сама то!
тогда просто выкидываем циклы проверки и сразу проверяем количество строк исходной и свернутой!
7. AnryMc 840 13.11.13 11:01 Сейчас в теме
(5) mxm2,

Добавлю:

Обычно ТЗ - это результат запроса.

Я в запросе вставляю строку примерно такую:

"1 КАК КоличествоДублей"

Затем сворачиваю копию ТЗ с суммированием по "КоличествоДублей" - получаю количество дублей по каждой позиции...
8. mxm2 1240 13.11.13 11:21 Сейчас в теме
(7) AnryMc, в запросе - вообще просто, достаточно использовать группировки с суммированим Вашего поля Сумма(КоличествоДублей), даже сворачивать после не нужно
11. 1cprogr_nsk 103 14.11.13 11:20 Сейчас в теме
(8) mxm2,
Если запросом по табличной части документа, то дубли не найдёт т.к. будет присутствовать колонка "НомерСтроки"
12. mxm2 1240 14.11.13 11:32 Сейчас в теме
(11) dr.death, если цель - определить наличие дублей, зачем запрашивать номер строки? Или, если нужен номер группировать с Максимум(НомерСтроки)
13. 1cprogr_nsk 103 14.11.13 11:53 Сейчас в теме
(12) mxm2,
Выбрать * по ТЧ вернёт все поля в т.ч. "НомерСтроки", ведь мы же говорим о универсальность, т.е. заранее не описаваем поля, которые хотим получить.
14. razin 40 14.11.13 12:52 Сейчас в теме
(13) На сколько я понял, в таком случае, если в таблице у поля есть составной тип - то его нужно описывать. Иначе запрос ругается на неизвестный тип. из-за этого и было сделано на циклах, а не на запросе - я не смог это победить. а обходить в цикле все колонки и проверять - лень :)
15. 1cprogr_nsk 103 14.11.13 13:16 Сейчас в теме
(14)
Я имел ввиду, что если в ТЧ заранее неизвестен состав колонок, то не получить написать запрос вида:
ВЫБРАТЬ
   МАКСИМУМ(НомерСтроки) КАК НенужноеПоле,
   1 КАК КоличествоДублей,
   ПолеТЧ1, КАК Поле1,
   ПолеТЧ2, КАК Поле2,
   ...
   ПолеТЧN КАК ПолеN

Вместо этого запроса можно написать Выбрать *, но тогда не получится выполнить функцию МАКСИМУМ.

Хотя есть вариант построить запрос в цикле
 //Проверяем, если ТИП табличная часть документа тогда
ТекстЗапроса = "Выбрать" + Символы.ПС;
Для каждого КолонкаТЧ Из ТабличнаяЧасть.Колонки Цикл
    ТекстЗапроса = ТекстЗапроса + ?(КолонкаТЧ.Имя = "НомерСтроки", "МАКСИМУМ("+КолонкаТЧ.Имя+") КАК   максСтрок,", КолонкаТЧ.Имя + " КАК " + КолонкаТЧ.Имя) + Символы.ПС;
КонецЦикла;
ТекстЗапроса = ТекстЗапроса + "1 КАК КоличествоДублей" + Символы.ПС + "ИЗ &ТаблицаЗначений";
9. torch 125 13.11.13 17:25 Сейчас в теме
Если условия использования функции таковы, что в большинстве случаев дублей строк нет, то целесообразно было бы вставить в самое начало функции фрагмент кода:

ТЗ1 = Новый ТаблицаЗначений;
ТЗ1 = ТабЧасть.Выгрузить();
ТЗ1.Свернуть(КонтролируемаяКолонка, "");
Если ТЗ1.Количество() = ТабЧасть.Количество() Тогда
Возврат Ложь;
КонецЕсли;
Прикрепленные файлы:
10. razin 40 14.11.13 08:31 Сейчас в теме
(9) Да. но тогда у нас только информация о наличии дублей, а о том, что именно задублировалось - нет.
так-то не очень гуманно пользователю сообщать - у тебя дубли - ищи сам, где :)
16. ProProProProPro 17.08.15 14:07 Сейчас в теме
ТЗДубли = Новый ТаблицаЗначений;
	ТЗДубли.Колонки.Добавить("Артикул");
		
	Для Каждого СтрокаАртикул ИЗ ТЗОтгрузка Цикл
		Отбор = Новый Структура;
		Отбор.Вставить("Артикул", СтрокаАртикул.Артикул);
		Строки = ТЗОтгрузка.НайтиСтроки(Отбор);
		Если Строки.Количество() > 1 Тогда
			Если ТЗДубли.Найти(СтрокаАртикул.Артикул) = Неопределено Тогда
				Для Каждого Стр ИЗ Строки Цикл
					СтрокаТЗДубли = ТЗДубли.Добавить();
					СтрокаТЗДубли.Артикул = Стр.Артикул;
				КонецЦикла;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	Если ТЗДубли.Количество() > 0 Тогда
	         Возврат ТЗДубли
        КонецЕсли;
Показать
baracuda; +1 Ответить
17. brylig 17.10.18 08:52 Сейчас в теме
Сделал на основе вот этого https://infostart.ru/public/95921/ по возможности универсально:

&НаКлиенте
Процедура НайтиДубли(Команда)
	Поля = Новый Массив;
	Поля.Добавить("Номенклатура");
	Поля.Добавить("Характеристика");
	Дубли = ПроверитьТЧНаДубли(Объект.ТЧ, Поля);
	Если Дубли.Количество() > 0 Тогда
		Для Каждого Дубль Из Дубли Цикл
			Сообщить("Табличная часть имеет дубли в строках №:");
			Для Каждого СтрокаДубля Из Дубль Цикл
				Сообщить(СтрокаДубля);
			КонецЦикла;
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПроверитьТЧНаДубли(Знач ТЧ, Поля) Экспорт
	Возврат ПроверитьТЗНаДубли(ТЧ.Выгрузить(), Поля);
КонецФункции

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

См. также

Выполнение длительных операций в фоновых заданиях

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Как программно запустить длительные операции в фоновых заданиях без блокировки пользовательского интерфейса.

19.01.2023    1675    programmer_2019    6    

24

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    4770    quazare    8    

94

Выгрузка данных в Excel с добавлением формул (нюансы формирования формул)

Загрузка и выгрузка в Excel Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Итак, я здесь описываю выгрузку отчета в Excel с добавлением пустых колонок для заполнения внутри самого Excel + колонки с формулами для выполнения расчетов на базе выгруженного и введенного руками в Excel. На самом деле публикация появилась по причине моих проблем, возникших при написании формул. Все остальное вроде штатно, но вдруг кому пригодится.

30.05.2022    2757    Zlohobbit    5    

19

Хитрости СКД. Часть 3

СКД Универсальные функции Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Столкнулся с тем, что мне приходится писать гору отчетов. Во многих приходится использовать повторяющиеся приемы. Решил написать шпаргалку, которая, надеюсь пригодится не только мне. В этой статье: Объединение ячеек в отчете только на определенном уровне иерархии, Постобработка итогов в табличном документе, Скрытие колонок в зависимости от количества месяцев в периоде.

28.05.2022    6281    milkers    11    

86

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Базовые принципы работы с регламентными заданиями подсистем БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

22.05.2022    7481    quazare    24    

52

Модули общего назначения - готовые полезные функции и процедуры конфигураций на БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье я рассматриваю несколько полезных "классических" функций и процедур для работы с данными, которые уже встроены в БСП и готовы к использованию.

25.04.2022    9031    quazare    11    

126

Вывод табличных документов с разной ориентацией страниц в один pdf файл

Универсальные функции Платформа 1С v8.3 Россия Бесплатно (free)

Привожу код для вывода нескольких табличных документов c разной ориентацией страниц в один файл pdf.

06.04.2022    2438    sdjoker    5    

28

Полезный код для программистов 1С (часть 3). Подготовка печатных форм + подсистема Управление печатью (БСП)

БСП (Библиотека стандартных подсистем) Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Мы все любим 1С, не так ли? Вот дает 1С прекрасный механизм возможности модификации макетов печатных форм в БСП. А из всех рекомендаций это получение макета и заполнение параметров областей. И вы спросите: "А что не так... ты печатные формы накодить не можешь без указаний сверху?". Да вот в том то и дело, что я могу все. А вот пользователям от такого механизма пользы 0, если из всех доступных изменений остаются только шрифты, да текст произвольный накинуть. А ведь можно больше, надо только соблюдать несколько правил при подготовке печатных форм...

07.03.2022    8777    vandalsvq    0    

56

Убираем параметры из отбора СКД

Универсальные функции СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Заметка о некоторых технических нюансах параметров данных и отборов СКД.

17.02.2022    4853    Yashazz    29    

31

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Конвертируем печатную форму pdf в картинку (jpg, gif, png и прочие) на сервере

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Была поставлена интересная задача конвертировать печатную форму в файл картинку. По условию задачи клиенту на почту нужно присылать только файл картинку (jpg, gif).

22.12.2021    5605    John_d    25    

46

Несколько простых приемов для удобной работы в конфигураторе

Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Простая и удобная среда разработки 1С:Предприятия позволяет практически любому человеку начать работать под капотом 1С - в конфигураторе. Время идет, новички становятся программистами, специалистами, а об удобных приемах работы узнают годами, по ходу своего карьерного пути. А здорово было бы, если бы все знали удобные приемы в начале своего пути? Эти несколько приемов будут полезны новичкам, так как они затрагивают ту область работы, с которой приходится сталкиваться в начале карьеры.

12.11.2021    12088    acces969    95    

138

Простейший способ учета изменений управляемых форм объектов 1С

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Описание методологии, позволяющей контролировать список изменений форм + вспомогательные функции программного изменения форм. Пригодятся при внесении изменений в расширениях, если есть необходимость видеть и контролировать все сделанные с формой изменения.

02.11.2021    1959    avalakh    12    

20

Функции для преобразования справочников и документов в соответствие и обратно

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Функции для преобразования справочников и документов в соответствие и обратно. Предназначены для передачи данных между одинаковыми и не очень конфигурациями или как очередной вариант сохранения (архивирования) объектов перед редактированием с последующим восстановлением.

01.11.2021    1709    avalakh    5    

19

Программно свернуть/развернуть узел динамического списка (с основной таблицей). Жирная точка над всеми "i".

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Какой пользователь не мечтал поменьше тыркать кнопкой? Особенно в малюсенькие +/- в "древесных" динамических списках. Если вас тоже озадачили, чтобы, при выборе узла дерева сами развернулись все его вложенные элементы , а при выборе другого узла - так же автоматом свернулась ранее развернутая ветка (причем эти узлы могут находится в разных "отношениях" друг с другом)... То вам - сюда.

08.10.2021    3540    e-9    13    

21

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Взаимодействие с api Честный знак (Молочная продукция)

WEB-интеграция Универсальные функции Обмен с ГосИС Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.

30.08.2021    13570    user5300    68    

54

Из Word в табличный документ

Универсальные функции Платформа 1С v8.3 Платформа 1C v8.2 Бесплатно (free)

Быстро и просто: текст, списки, таблицы. Готовый код

18.08.2021    3992    Yashazz    6    

61

Префиксация объектов - полезный типовой функционал БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бухгалтерский учет Управленческий учет Бесплатно (free)

В данной публикации предлагаю рассмотреть основные типовые возможности библиотеки стандартных подсистем (БСП), касаемые префиксации объектов конфигураций.

21.06.2021    10185    quazare    4    

61

Своя функция &Вместо &ИзменениеИКонтроль

Универсальные функции Платформа 1С v8.3 Россия Бесплатно (free)

Как добавить контроль в расширения, если не доверяешь аннотации &ИзменениеИКонтроль.

06.06.2021    15268    AntonProgma    171    

19

Предотвращение многократного вызова "ПриПолученииДанных" во время поиска в табличном поле в обычных формах

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Долго искал решение: как при выводе строк заполнить значениями колонки, которые созданы программно, чтобы, не было тормозов при стандартном поиске. И с минимальными изменениями (легко контролируемыми, при обновлении).

07.04.2021    3403    Vlad_CK    9    

25

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Генератор QR кодов для 1С без компонент через HTTP API

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Самый простой, на мой взгляд, способ получить QR код для 1СV8. Без внешних компонент, как говорится, бесплатно, без смс и регистрации))

17.12.2020    8732    shell_maxim    28    

30

Сохранение настроек

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Делюсь еще одним не самым очевидным способом хранения настроек в базах на БСП без доработки конфигурации. Весь код в статье.

22.11.2020    9112    ixijixi    8    

66

Сохранение настроенного запроса набора данных СКД

Универсальные функции Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Как сохранить запрос набора данных СКД в том виде, каким он будет выполнен системой для открытия в консоли запросов с диска ИТС.

09.11.2020    2311    Serge R    0    

20

Произвольные колонтитулы и повтор шапки таблицы в табличном документе (функция)

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Пример рекурсивной функции, при помощи которой в табличный документ можно выводить верхний или нижний колонтитулы с произвольным содержимым, а также делать повтор шапки таблицы (или таблиц, если их несколько).

07.10.2020    12391    ellavs    6    

34

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Лайфхаки для разработчиков 1С. Часть 1

Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Россия Бесплатно (free)

Собрали 20 лайфхаков, которые используют наши программисты при работе с 1С. Формы, контрагенты, СКД, процедуры, глюки платформы и многое другое. В этой статье публикуем первую часть.

30.09.2020    9392    Neti    47    

68

Самый простой парсинг и обработка веб-страниц в 1С

WEB-интеграция Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    23602    Infostart    30    

145

Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0 (сравнение)

Универсальные функции Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бесплатно (free)

В данном обзоре приведу примеры встроенных используемых функций для работы с печатными формами на примерах конфигураций Управление торговлей 11.4 и Бухгалтерия 3.0.

10.07.2020    14212    quazare    7    

79

Вывод дерева в табличный документ СКД

Универсальные функции Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Вывод содержимого элемента формы "ДанныеФормыДерево" в табличный документ средствами СКД.

09.07.2020    6739    Yashazz    12    

25

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

В курсе обобщен опыт работы аналитика на проектах в течение пяти лет, в нескольких фирмах. Подходы к написанию документов унифицированы и по возможности не привязаны к конфигурациям 1С.

3 500 рублей

Форма выбора (подбор) в управляемых формах

Универсальные функции Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Бесплатно (free)

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    164926    user5300    37    

275

Получаем уровень группировки ячейки табличного документа

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Табличные документы отчетов часто формируются с разными уровнями группировок и иногда требуется определить номер уровня ячейки. Предлагаю свои функции, которые позволяют определить, как горизонтальный, так и вертикальный уровень группировки любой ячейки табличного документа.

23.03.2020    8189    maxx    16    

57

Поблочная обработка таблицы. Обзор решений

Универсальные функции Запросы СКД Платформа 1С v8.3 Бесплатно (free)

8 способов реализации повседневной актуальной задачи, готовый код

25.02.2020    3256    Yashazz    21    

21

Сравнение адресов: случай из практики

Математика и алгоритмы Универсальные функции Платформа 1С v8.3 Россия Бесплатно (free)

Как с учетом обстоятельств сравнить два небрежно записанных адреса и решить, означают ли они одно и то же. Программный код написан для режима совместимости с 8.2.

04.01.2020    5203    AnatolPopov    7    

22

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Сходство Джаро - Винклера. Нечеткое сравнение строк

Универсальные функции Платформа 1С v8.3 Россия Бесплатно (free)

В области информатики и статистики сходство Джаро - Винклера представляет собой меру схожести строк для измерения расстояния между двумя последовательностями символов. В публикации рассмотрены некоторые особенности алгоритма, и представлен вариант его реализации на языке 1С.

25.12.2019    10965    brooho    21    

168

Автоматическое создание связанного объекта в базе 1С: Документооборот через бесшовную интеграцию

Универсальные функции Механизмы типовых конфигураций Платформа 1С v8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

При настройке бесшовной интеграции с базой документооборота часто возникает задача - пользователи просят автоматически создавать связанный объект в базе документооборота по некоторому условию. В данной публикации я хочу поделиться своим решением данной задачи.

23.12.2019    5937    pavelpribytkin96    3    

39

Разбор любого JSON-объекта в соответствующую структуру

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Данная публикация предназначена разработчикам 1С, которым приходиться разбирать данные формата JSON. Выложенный пример кода создает объект типа Структура, полностью повторяющий структуру данных формата JSON.

13.11.2019    35138    user665435_al.windstorm    16    

27