Алгоритм проверки уникальности и корректности ИНН, КПП при записи контрагента для БП 1.6 и 2.0 через подписку на события

Публикация № 106129

Разработка - Практика программирования

В УПП есть типовой механизм проверки контрагента на уникальность при записи.
В БП 2.0 такой типовой проверки нет, пришлось добавлять свою, к тому же логика УПП-шной проверки меня не совсем устраивает.

Предлагаю свой вариант алгоритма проверки ИНН и КПП при записи элемента справочника Контрагенты.

Ни на что не претендую, если инфа будет кому-то полезна, значит не зря потратил время :).
К тому же этот вопрос возникает с неизменной периодичностью на всех форумах.

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

Приведенный ниже код проверяет корректность в ИНН и КПП на:
    - длина
    - недопустимые символы
    - уникальность ИНН+КПП (для юрлица) или уникальность ИНН (для физлица)
    - проверка корректности ИНН на контрольный разряд

P.S. это первая публикация, сильно не ругайте, если есть замечания - сообщите

обновлено 13.03.2012 : добавлена проверка на Отказ, ОбменДанными.Загрузка,  ЭтоГруппа (спасибо http://forum.infostart.ru/forum24/topic51955/message616590/#message616590)

В конфигурации БП реализовал следующим образом:

1) создал подписку на событие

Источник: СправочникОбъект.Контрагенты

Событие: ПередЗаписью

Обработчик: МойОбщийМодуль.ПередЗаписьюКонтрагента (где МойОбщийМодуль - собственный общий модуль, но можно при желании можно и в один из типовых засунуть)

2) собственно сам обработчик

//добавлено - 11/05/2010 (проверка на корректность и уникальность ИНН и КПП)
Процедура ПередЗаписьюКонтрагента(Источник, Отказ) Экспорт

    Если Отказ ИЛИ Источник.ОбменДанными.Загрузка ИЛИ Источник.ЭтоГруппа Тогда
        Возврат;
    КонецЕсли;

    Если
Источник.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
       
ЭтоФизлицо = Истина;
    Иначе
       
ЭтоФизлицо = Ложь;
    КонецЕсли;

   
// проверка ИНН на заполнение
   
ИНН = Источник.ИНН;
    Если
СтрДлина(ИНН) <> ?(ЭтоФизлицо, 12, 10) Тогда
       
СообщениеОНевозможностиЗаписи = "Неверное количество символов в реквизите ИНН!!!" + Символы.ПС
            + "Текущее количество символов: " + СтрДлина(ИНН) + Символы.ПС
            + "Требуемое количество символов для " + ?(ЭтоФизлицо, "Физлица: 12","Юрлица: 10");
       
ОбщегоНазначения.СообщитьОбОшибке(СообщениеОНевозможностиЗаписи);
       
Отказ = Истина;
        Возврат;
    КонецЕсли;

   
// проверка ИНН на недопустимые символы
   
Результат = Истина;
    Для
а = 1 По СтрДлина(ИНН) Цикл
        Если
Найти("0123456789", Сред(ИНН,а,1)) = 0 Тогда
           
НекорректныйСимвол = Сред(ИНН,а,1);
           
Результат = Ложь;
            Прервать;
        КонецЕсли;
    КонецЦикла;

    Если НЕ
Результат Тогда
        СообщениеОНевозможностиЗаписи = "Недопустимый символ в реквизите ИНН: <" + НекорректныйСимвол + "> !!!";
       
ОбщегоНазначения.СообщитьОбОшибке(СообщениеОНевозможностиЗаписи);
       
Отказ = Истина;
        Возврат;
    КонецЕсли;

   
// проверка ИНН на контрольный разряд

    Если НЕ РегламентированнаяОтчетность.ИННСоответствуетТребованиям(ИНН, ЮрФизЛицо) Тогда
        СообщениеОНевозможностиЗаписи = "ИНН задан неверно (не прошел проверку на контрольный разряд)!!!";
        ОбщегоНазначения.СообщитьОбОшибке(СообщениеОНевозможностиЗаписи);
       
Отказ = Истина;
        Возврат;
    КонецЕсли;

    Если НЕ
ЭтоФизлицо Тогда
   
// проверка КПП на заполнение
       
КПП = Источник.КПП;
        Если
СтрДлина(КПП) <> 9 Тогда
           
СообщениеОНевозможностиЗаписи = "Неверное количество символов в реквизите КПП!!!" + Символы.ПС
            + "Текущее количество символов: " + СтрДлина(КПП) + Символы.ПС
            + "Требуемое количество символов: 9";
           
ОбщегоНазначения.СообщитьОбОшибке(СообщениеОНевозможностиЗаписи);
           
Отказ = Истина;
            Возврат;
        КонецЕсли;

       
// проверка КПП на недопустимые символы
       
Результат = Истина;
        Для
а = 1 По СтрДлина(КПП) Цикл
            Если
Найти("0123456789", Сред(КПП,а,1)) = 0 Тогда
               
НекорректныйСимвол = Сред(КПП,а,1);
               
Результат = Ложь;
                Прервать;
            КонецЕсли;
        КонецЦикла;

        Если НЕ
Результат Тогда
            СообщениеОНевозможностиЗаписи = "Недопустимый символ в реквизите КПП: <" + НекорректныйСимвол + "> !!!";
           
ОбщегоНазначения.СообщитьОбОшибке(СообщениеОНевозможностиЗаписи);
           
Отказ = Истина;
            Возврат;
        КонецЕсли;
    КонецЕсли;

   
// поиск дубликатов в справочнике
   
Запрос = Новый Запрос();
   
Запрос.УстановитьПараметр("ТекущийИНН", ИНН);
   
Запрос.УстановитьПараметр("ТекущийКПП", КПП);
   
Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);

   
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
    |    Контрагенты.Ссылка,
    |    ПРЕДСТАВЛЕНИЕ(Контрагенты.Ссылка) КАК ПредставлениеКонтрагента
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    НЕ Контрагенты.Ссылка = &Ссылка
    |    И Контрагенты.ИНН = &ТекущийИНН
    |   "
+ ?(ЭтоФизлицо, "", " И Контрагенты.КПП = &ТекущийКПП");

   
ВыборкаКонтрагентов = Запрос.Выполнить().Выбрать();

    Если
ВыборкаКонтрагентов.Количество() <> 0 Тогда
       
ВыборкаКонтрагентов.Следующий();
       
СообщениеОНевозможностиЗаписи = "Уже существует контрагент с таким ИНН" + ?(ЭтоФизлицо, "", " И КПП") + " (" + ВыборкаКонтрагентов.Ссылка.Код + " " + ВыборкаКонтрагентов.ПредставлениеКонтрагента + ") !!!" ;
       
ОбщегоНазначения.СообщитьОбОшибке(СообщениеОНевозможностиЗаписи);
       
Отказ = Истина;
        Возврат;
    КонецЕсли;

КонецПроцедуры
//финиш - 11/05/2010 (проверка на корректность и уникальность ИНН и КПП)

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. ms200999 30.01.12 13:44 Сейчас в теме
Напрашивается проверка по контрольному числу. :)
2. DSatan 40 30.01.12 15:48 Сейчас в теме
(1) не спорю, можно добавить и такой контроль, например из http://infostart.ru/public/70687/
мне такая проверка не нужна, т.к. часто при создании контрагента-физлица отсутствует информация об ИНН, тогда пользователи используют в качестве ИНН СерияНомерПаспорта+"00"
3. DSatan 40 30.01.12 21:58 Сейчас в теме
(1) в типовой конфе БП оказывается уже есть функция проверки на контрольное число, добавил сюда эту проверку, спасибо за полезное замечание
4. DDos76 200 11.02.12 09:17 Сейчас в теме
Спасибо за готовый код! Иногда просто бывает некогда писать и думать - а тут скопировал вставил и работает!
5. artbear 1184 11.03.12 17:22 Сейчас в теме
Сабж пока слабо готов к реальной эксплуатации
1. Нет проверки на ОбменДанными.Загрузка
2. ИМХО в подобных обработчиках лучше сразу проверять Отказ. Если Истина, то ничего не делать, так будет производительнее для системы.
6. DSatan 40 13.03.12 08:37 Сейчас в теме
(5) artbear - прав, спасибо за замечания, одна голова хорошо, а две лучше :)
в принципе этот алгоритм используется на практике уже 2 года, но для универсальности добавлю твои предложения
7. JLaikova 09.09.13 10:35 Сейчас в теме
8. kalaratra 13 14.08.14 09:07 Сейчас в теме
Спасибо огромное! Только сегодня пришла такая же задача) Не пришлось самой разбираться)))
9. bashirov.rs 27 04.12.14 14:02 Сейчас в теме
Проверка на значения типа "0000000000" или "1111111111" и т.д. будет? Возможно проверить по регионам ИНН (начинается ли ИНН с кода региона - 01, 02, ... 99) ?
10. байт 45 17.01.15 20:44 Сейчас в теме
Автору спасибо, благодаря статье сделал все быстро.
11. Nordkas 11 29.01.15 21:53 Сейчас в теме
Спасибо, я не много доработал и получилось очень достойно.
12. b-dm 169 19.02.15 18:14 Сейчас в теме
Молодец! Проверка при записи правильное дело.
13. wertyoz453 30.09.15 10:42 Сейчас в теме
Хороший вариант реализации, но для работы в нетиповых потребуется и сама функция:

// Проверяет соответствие ИНН требованиям
// Параметры:
//		ИНН - строка - проверяемый индивидуальный номер налогоплательщика,
//		ВладелецИНН - ПеречислениеСсылка.ЮрФизЛицо - тип владельца ИНН: физлицо или юрлицо
Функция ИННСоответствуетТребованиям(Знач ИНН, Знач ТипЛица) Экспорт

	ИНН = СокрЛП(ИНН);
	ДлинаИНН =  СтрДлина(ИНН);

	Если НЕ ОбщегоНазначения.ТолькоЦифрыВСтроке(ИНН) Тогда
		Возврат Ложь;
	КонецЕсли;
	
	Если Метаданные.Перечисления.Найти("ЮрФизЛицо") = Неопределено Тогда
		ПроверяетсяИННФизЛица = ТипЛица;
	Иначе
		ПроверяетсяИННФизЛица = (ТипЛица = Истина ИЛИ ТипЛица = Перечисления.ЮрФизЛицо.ФизЛицо);
	КонецЕсли;
	
	Если ДлинаИНН = 10  И НЕ ПроверяетсяИННФизЛица Тогда

		КонтрольнаяСумма = 0;

		Для Н = 1 По 9 Цикл

			Если 	  Н = 1 Тогда
				Множитель = 2;
			ИначеЕсли Н = 2 Тогда
				Множитель = 4;
			ИначеЕсли Н = 3 Тогда
				Множитель = 10;
			ИначеЕсли Н = 4 Тогда
				Множитель = 3;
			ИначеЕсли Н = 5 Тогда
				Множитель = 5;
			ИначеЕсли Н = 6 Тогда
				Множитель = 9;
			ИначеЕсли Н = 7 Тогда
				Множитель = 4;
			ИначеЕсли Н = 8 Тогда
				Множитель = 6;
			ИначеЕсли Н = 9 Тогда
				Множитель = 8;
			КонецЕсли; 
			
			Цифра = Число(Сред(ИНН,Н,1));
			КонтрольнаяСумма = КонтрольнаяСумма + Цифра * Множитель;
			
		КонецЦикла; 
		
		КонтрольныйРазряд = (КонтрольнаяСумма %11) %10;
		
		Если КонтрольныйРазряд <> Число(Сред(ИНН,10,1)) Тогда
			Возврат Ложь;
		КонецЕсли; 
		
	ИначеЕсли ДлинаИНН =12 И ПроверяетсяИННФизЛица Тогда
		
		КонтрольнаяСумма11 = 0;
		КонтрольнаяСумма12 = 0;
		
		Для Н=1 По 11 Цикл
			
			// Расчет множителя для 11-го и 12-го разрядов
			Если Н = 1 Тогда
				Множитель11 = 7;
				Множитель12 = 3;
			ИначеЕсли Н = 2 Тогда
				Множитель11 = 2;
				Множитель12 = 7;
			ИначеЕсли Н = 3 Тогда
				Множитель11 = 4;
				Множитель12 = 2;
			ИначеЕсли Н = 4 Тогда
				Множитель11 = 10;
				Множитель12 = 4;
			ИначеЕсли Н = 5 Тогда
				Множитель11 = 3;
				Множитель12 = 10;
			ИначеЕсли Н = 6 Тогда
				Множитель11 = 5;
				Множитель12 = 3;
			ИначеЕсли Н = 7 Тогда
				Множитель11 = 9;
				Множитель12 = 5;
			ИначеЕсли Н = 8 Тогда
				Множитель11 = 4;
				Множитель12 = 9;
			ИначеЕсли Н = 9 Тогда
				Множитель11 = 6;
				Множитель12 = 4;
			ИначеЕсли Н = 10 Тогда
				Множитель11 = 8;
				Множитель12 = 6;
			ИначеЕсли Н = 11 Тогда
				Множитель11 = 0;
				Множитель12 = 8;
			КонецЕсли; 
			
			Цифра = Число(Сред(ИНН,Н,1));
			КонтрольнаяСумма11 = КонтрольнаяСумма11 + Цифра * Множитель11;
			КонтрольнаяСумма12 = КонтрольнаяСумма12 + Цифра * Множитель12;
			
		КонецЦикла; 
		
		КонтрольныйРазряд11 = (КонтрольнаяСумма11 %11) %10;
		КонтрольныйРазряд12 = (КонтрольнаяСумма12 %11) %10;
		
		Если КонтрольныйРазряд11 <> Число(Сред(ИНН,11,1))
			ИЛИ КонтрольныйРазряд12 <> Число(Сред(ИНН,12,1)) Тогда
			Возврат Ложь;
		КонецЕсли; 
		
	Иначе
		
		Возврат Ложь;
		
	КонецЕсли; 
	
	Возврат Истина;
	
КонецФункции
Показать





14. maksa2005 315 14.10.15 21:37 Сейчас в теме
Чтобы не вводили вместо чисел буквы и цифры в ИНН и КПП для счастья луше добавить маску в ИНН - 999999999999 и КПП 999999999
serg1974; +1 Ответить
15. maksa2005 315 14.10.15 21:38 Сейчас в теме
Не добавил проверку по ИП у которых стоит КПП.
Оставьте свое сообщение

См. также

3 онлайн-курса по 1С-программированию: обмен данными, расчетные задачи и бухгалтерские задачи с 12 мая по 8 июля 2020 г. Промо

Практика программирования v8 Бесплатно (free)

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

22.04.2020    4509    23    Infostart    2    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    18905    0    ids79    26    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    18365    0    John_d    22    

Последовательности событий. Шпаргалка

Практика программирования v8 Россия Бесплатно (free)

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    13305    0    kuzyara    33    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    35423    0    unichkin    45    

30 задач. Странных и не очень

Практика программирования v8 Бесплатно (free)

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    14556    0    YPermitin    72    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

Практика программирования v8 Бесплатно (free)

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    6694    0    Sibars    19    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    28075    0    Yashazz    45    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

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

15.10.2018    27856    0    tormozit    100    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    39415    0    rpgshnik    62    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    41576    0    ids79    54    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    24298    0    YPermitin    24    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012    75353    0    tormozit    129    

Три костыля. Сказ про фокусы в коде

Практика программирования v8 Бесплатно (free)

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    23026    0    YPermitin    80    

Отслеживание выполнения фонового задания

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

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    28159    0    ids79    16    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    64779    0    ids79    40    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    46236    0    tormozit    38    

Фоновое выполнение кода в 1С - это просто

Практика программирования v8 1cv8.cf Бесплатно (free)

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

02.08.2019    29178    0    avalakh    22    

Разбираемся с параметрами редактирования СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    19617    0    json    12    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    48554    0    ids79    11    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    42203    0    tormozit    74    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    31332    0    ids79    27    

Регистры сведений. За кулисами

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    23743    0    YPermitin    13    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    17630    0    SeiOkami    50    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    15340    0    m-rv    2    

Работа с настройками системы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Варианты отчетов, работа с настройками вариантов: структура группировок, поля отчета, отборы, сортировка, условное оформление, другие настройки, настройки отображения диаграмм.

02.07.2019    38239    0    ids79    10    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    45788    0    ids79    20    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    22774    0    dmurk    144    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

... и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.

16.04.2019    19113    0    m-rv    17    

Регистры накопления. Структура хранения в базе данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    38298    0    YPermitin    30    

Выполнение внешней обработки в фоновом задании

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    26490    0    Eret1k    23    

О расширениях замолвите слово...

Практика программирования Разработка v8 Бесплатно (free)

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    31944    0    ellavs    126    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    28753    0    m-rv    21    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Практика программирования v8 Бесплатно (free)

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    25195    0    ellavs    88    

Трюки с внешними источниками данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    28761    0    YPermitin    53    

Ошибки при работе с хранилищем конфигурации и способы их решения

Практика программирования v8 Бесплатно (free)

В статье собраны наиболее распространенные ошибки при работе с хранилищем конфигурации и способы их обхода и решения.

01.03.2019    33539    0    Смешной 1С    27    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем - чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").

05.12.2017    26795    0    itriot11    34    

Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев

Практика программирования Vanessa Automation v8 Россия Бесплатно (free)

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

26.02.2019    20053    0    Vladimir Litvinenko    27    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права Бесплатно (free)

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    34468    0    ids79    9    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    73321    0    Serginio    108    

EnterpriseData – часть 2. Процесс выгрузки данных

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

Основные этапы выгрузки данных через ED, обработчики событий выгрузки, правила обработки данных, правила конвертации объектов, конвертация свойств первого и второго этапов, процедуры БСП, используемые при выгрузке данных, структура «КомпонентыОбмена».

26.12.2018    24698    0    ids79    31    

Новый подход к обмену данными EnterpriseData

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

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

14.12.2018    37746    0    ids79    72    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    32323    0    ids79    40    

EnterpriseData - пример доработки правил конвертации без использования КД 3.0 в расширении конфигурации

Практика программирования Обмен через XML v8 v8::УФ БП3.0 УТ11 Россия Бесплатно (free)

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

16.11.2018    34129    0    ids79    40    

Программное заполнение пользовательских параметров и отборов СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

13.11.2018    41161    0    Unk92    21    

Тестер: частые вопросы Промо

Практика программирования v8 Бесплатно (free)

Ошибкам бой - тесты норма жизни!

25.07.2018    27433    0    grumagargler    26