Dev ›
Невозможный глюк с регистром сведений!!! (проблема / ошибка!) ›
#1
27.10.10 13:15
Что имеем : платформу 8.2 . Пользователя со всеми правами . Форма списка незалежного непериодического регистра сведений(динамический список, авто обновление). Независимо от формы клиента (толстого , тонкого ) регистр ведет себя странно - интерактивное выполнение команды из модуля формы выполняет код :
&НаСервере
Процедура Перенести()
//установка цен и количества
НаборЗаписей = РегистрыСведений.ВременнаяНоменклатура.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
Для каждого лЗапись из наборЗаписей Цикл
Если лЗапись.УжеЗаписана или лЗапись.Производитель=Справочники.Производители.ПустаяСсылка() Тогда
Продолжить;
КонецЕсли;
стОтбор=Новый Структура("Период,Контрагент,ТипЦены,Номенклатура,ПараметрыЗагрузки,Цена,Количество,СрокПоставки,ДокУстановкиЦен");
ЗаполнитьЗначенияСвойств(стОтбор,лЗапись);
стОтбор.Период= лЗапись.ДатаПрайса;
стОтбор.СрокПоставки= лЗапись.ПараметрыЗагрузки.СрокПоставки;
РаботаСРегистрамиСведений.УстановитьЦенуНоменклатурыСжато(стОтбор);
Если лЗапись.Количество <> 0 Тогда
РаботаСРегистрамиСведений.УстановитьКоличествоНоменклатуры(стОтбор);
КонецЕсли;
лЗапись.УжеЗаписана=Истина;
КонецЦикла;
НаборЗаписей.ОбменДанными.Загрузка=Истина;
НаборЗаписей.Записать(Истина);
//Отладчиком можно проконтролировать что набор записей изменился.
// какой то код ...
// удаление перенесенных записей
НаборЗаписей = РегистрыСведений.ВременнаяНоменклатура.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
Сч=0;
Пока сч < НаборЗаписей.Количество() Цикл
Запись = НаборЗаписей[Сч];
Если ПроизводительУказан и ((МаркаУказана и МодельВПролете)или (МодельУказана и МаркаВПролете) или (МаркаУказана и МодельУказана)) Тогда
НаборЗаписей.Удалить(Запись);
Иначе
Сч=Сч+1;
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записывать=Истина;
НаборЗаписей.ОбменДанными.Загрузка=Истина;
НаборЗаписей.Записать(истина);
КонецПроцедуры
// снова отладчиком видно что записи в наборе записей удалены!
НО после отработки процедуры и обновления динамического списка обнаруживается что ничего не изменилось!
Что характерно : Похожая процедура (соседняя кнопка в форме списка )
отрабатывает вполне логично :
&НаСервереБезКонтекста
Процедура УдалитьЗаписи()
НаборЗаписей = РегистрыСведений.ВременнаяНоменклатура.СоздатьНаборЗаписей();
НаборЗаписей.Записать();
КонецПроцедуры
// после F5 динамический список показывает что записи исчезли.
Модуль набора записей и Модуль менеджера регистра кода не содержит!
По окончании обработки "левого" кода нет , управление возвращается в форму.
ВОПРОС : как такое возможно и как жить дальше ?!