Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 фев 2024, 15:34

1C 8.3. Периодически стираются контактные данные контрагента

Автор gulnyr, 02 мая 2023, 16:57

0 Пользователей и 1 гость просматривают эту тему.

gulnyr

Время от времени стираются контактные данные контрагента. Из-за чего так происходит?

antoneus

Кто-то или что-то их стирает. Регламентные задания какие-нибудь с контактными данными работают? Обмены там, что-нибудь еще?

gulnyr

antoneus, вроде бы такого нет. Контактная информация контрагента хранится в независимом регистре сведений, возможно там стирается при каком-нибудь отборе :dfbsdfbsdf:  Есть ли вариант, как проверить, как избежать данную проблему?

antoneus

Ну при отборе-то стираться не должно. Возможно, при записи туда нового трется. Это у одного контрагента так или у всех?

gulnyr


Rettro

gulnyr, поищи в журнале регистрации информацию кто/что делал с контактной информацией

gulnyr

Rettro, да, посмотрел. Есть информация только по проведениям, логично предположить что эти данные менялись, как только стерлись. Только не понятно, как они стираются :dfbsdfbsdf:

antoneus

Глобальным поиском вбивай название регистра с контактной информацией и смотри в каких процедурах что с ним делают. Моя версия - новая информация пишется через набор записей, отбор в наборе по контрагенту устанавливается, а Набор.Прочитать() забыли.

gulnyr

antoneus, в регистре сведении Контактная информация такой код в модуле набора записей:

Процедура ПередЗаписью(Отказ, Замещение)

// проверка для предотвращения попытки полной зачистки регистра
Если ЭтотОбъект.Количество() = 0 Тогда
Если ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Объект.Значение) И
ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Тип.Значение) И
ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Вид.Значение) Тогда
СтрокаОтказа = "Попытка полной зачистки!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;

// проверки оставлены в модуле на случай редактирования КИ в строке
// Вообще проверка делается локально в каждой форме записи КИ
Для Каждого Запись Из ЭтотОбъект Цикл 

Если ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Объект.Значение) Тогда
СтрокаОтказа = "Не установлен отбор по объекту";
Отказ = Истина;
КонецЕсли;

Если ОбЗначениеНеЗаполнено(Запись.Объект) Тогда
Отказ = Истина;
СтрокаОтказа = "Не заполнено поле ""Владелец"". Запись невозможна!";
Продолжить;
КонецЕсли;

Если Запись.Объект.ЭтоГруппа Тогда
Отказ = Истина;
СтрокаОтказа = "Нельзя использовать группу в качестве объекта контактной информации.";
Прервать;
КонецЕсли;

Если ОбЗначениеНеЗаполнено(Запись.Вид) Тогда
Отказ = Истина;
СтрокаОтказа = "Не заполнено поле ""Вид"". Запись невозможна!";
Прервать;
КонецЕсли;

Если ОбЗначениеНеЗаполнено(Запись.Представление) Тогда
Отказ = Истина;
СтрокаОтказа = "Не заполнено представление контактной информации. Запись невозможна!";
Прервать;
КонецЕсли;
КонецЦикла;

   Если Отказ Тогда
         Сообщить(СтрокаОтказа);
   КонецЕсли;

КонецПроцедуры

Даже имея защиту от стирания данных программа все равно умудряется очистить регистр.
Программа получается обходит эти защиты? Как исправить?

antoneus

Ещё раз говорю - искать, какими процедурами контактная информация записывается в регистр. Эта "защита" - такая себе защита.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск