Консультация № 140614
24.07.2008, 09:55
0.00 руб.
0 0 0
Добрый день. Подскажите из-за чего пропадает информация в базе, и только в одном документе. Документ состоит из двух закладок. Данные на закладке "Зарплата" соответствуют одной строке на закладке "Основная". Иформация пропадает на закладке зарплата. В большинстве но не всегда пропадает иформация, которая относится к первой строке на закладке "Основная".

Процедуры ПриОткрытии(), ПриВыбореЗакладки() и ПриЗаписи() описаны ниже. ттт - это таблица.
Процедура Табл() - ввод данных на закладку "Зарплата".

данные_о_сотрудниках, данные_о_контролерах, данные_о_кол - тип: строка 500.

Может ли возникать эта ситуация из-за изменения одного из справочников с помощью которых вводятся данные в документ?
Может быть это стевые проблемы?

Приложение:
Процедура ПриОткрытии() Форма.ИспользоватьЗакладки(1); Форма.Закладки.ДобавитьЗначение(1,"Основная"); Форма.Закладки.ДобавитьЗначение(2,"Зарплата"); Форма.ИспользоватьСлой("Общий, Основной",2); ттт.НоваяКолонка("сотр","Справочник.Рабочие",,,"Сотрудник",30); ттт.НоваяКолонка("контр","Справочник.Контролеры",,,"Контролер",30); ттт.НоваяКолонка("кол","строка",10,,"Кол-во",10); КонецПроцедуры Процедура Табл() если ттт.текущаястрока()=0 тогда возврат; конецесли; если ттт.текущаяколонка()="сотр" тогда в_сотр=ттт.сотр; если ВвестиЗначение(в_сотр,"Выберите сотрудника","Справочник.Рабочие")=1 тогда ттт.сотр=в_сотр; конецесли; конецесли; если ттт.текущаяколонка()="контр" тогда в_контр=ттт.контр; если ВвестиЗначение(в_контр,"Выберите контролера","Справочник.Контролеры")=1 тогда ттт.контр=в_контр; конецесли; конецесли; если ттт.текущаяколонка()="кол" тогда в_кол=число(ттт.кол); если ВвестиЗначение(в_кол,"Укажите кол-во","Число")=1 тогда ттт.кол=строка(в_кол); конецесли; конецесли; КонецПроцедуры Процедура ПриВыбореЗакладки(Ном,Значение) Если Значение=1 Тогда спис_сотр=создатьобъект("СписокЗначений"); спис_контр=создатьобъект("СписокЗначений"); спис_кол=создатьобъект("СписокЗначений"); ттт.выбратьстроки(); пока ттт.получитьстроку()=1 цикл спис_сотр.ДобавитьЗначение(ттт.сотр); спис_контр.ДобавитьЗначение(ттт.контр); спис_кол.ДобавитьЗначение(ттт.кол); конеццикла; данные_о_сотрудниках=ЗначениеВСтроку(спис_сотр); данные_о_контролерах=ЗначениеВСтроку(спис_контр); данные_о_кол=ЗначениеВСтроку(спис_кол); Форма.ИспользоватьСлой("Общий, Основной",2); Иначе старзнач=номерстроки; ттт.удалитьстроки(); если выбратьстроки()=1 тогда ПолучитьСтрокуПоНомеру(старзнач); если ((стрдлина(сокрлп(данные_о_сотрудниках))<>0) или (стрдлина(сокрлп(данные_о_контролерах))<>0)) тогда ррр1=создатьобъект("СписокЗначений"); ррр2=создатьобъект("СписокЗначений"); ррр4=создатьобъект("СписокЗначений"); ррр1=ЗначениеИзСтроки(данные_о_сотрудниках); ррр2=ЗначениеИзСтроки(данные_о_контролерах); ррр4=ЗначениеИзСтроки(данные_о_кол); для а=1 по ррр1.РазмерСписка() цикл ттт.новаястрока(); ттт.сотр=ррр1.ПолучитьЗначение(а); ттт.контр=ррр2.ПолучитьЗначение(а); ттт.кол=ррр4.ПолучитьЗначение(а); конеццикла; конецесли; конецесли; Форма.ИспользоватьСлой("Общий, Сотр",2); КонецЕсли; КонецПроцедуры Процедура ПриЗаписи() спис_сотр=создатьобъект("СписокЗначений"); спис_контр=создатьобъект("СписокЗначений"); спис_кол=создатьобъект("СписокЗначений"); ттт.выбратьстроки(); пока ттт.получитьстроку()=1 цикл спис_сотр.ДобавитьЗначение(ттт.сотр); спис_контр.ДобавитьЗначение(ттт.контр); спис_кол.ДобавитьЗначение(ттт.кол); конеццикла; данные_о_сотрудниках=ЗначениеВСтроку(спис_сотр); данные_о_контролерах=ЗначениеВСтроку(спис_контр); данные_о_кол=ЗначениеВСтроку(спис_кол); КонецПроцедуры

Обсуждение

Форма ответа