Позиция = СписокЦен.ТекущаяСтрока(); Если Позиция > 0 Тогда Элемент= СписокЦен.ПолучитьЗначение(Позиция, "Ссылка"); ФормаЗаписи=глВзятьКонтекст(Контекст); ОткрытьФормуМодально(Элемент, ФормаЗаписи); <--- строка 846 Иначе Предупреждение("Не выбрана цена."); КонецЕсли; КонецПроцедуры
Вопроса 2.
1.Может кто-то сталкивался с подобным? 2.Как сэмулировть превышение времени ожидания на тестовой базе MS SQL 2008 R2 Evolution. ну или MS SQL 2005 Express.(переустановлю)
Спасибо.
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник. ЗиУП
на форуме, конечно, для лучшего представления картины читающих, помогающих.
ПриЗаписи код скорее всего такой же как в типовой.
Процедура ПриЗаписи() // Предопределенная процедура // в процедуре при записи проверятся заполнение обязательных реквизитов Перем Описание; Перем ФлагОшибки; Перем ВыборкаЦен;
Описание = "Не заполнено поле ";
// изначально считаем, что не все обязательные поля заполнены ФлагОшибки = 0;
// проверка обязательных полей Если ПустоеЗначение(Валюта) = 1 Тогда Описание = Описание + "'Валюта'"; ИначеЕсли ПустоеЗначение(КатегорияЦены) = 1 Тогда Описание = Описание + "'Тип цены'"; ИначеЕсли ПустоеЗначение(Единица) = 1 Тогда Описание = Описание + "'Единица измерения'"; Иначе // все обязательные поля заполнены ФлагОшибки = 1; КонецЕсли;
Если ФлагОшибки=0 Тогда
// не заполнено обязательное поле Предупреждение(Описание); СтатусВозврата(0); Возврат; КонецЕсли;
// проверяем, есть ли уже цена с такой категорией ВыборкаЦен = СоздатьОбъект("Справочник.Цены"); ВыборкаЦен.ИспользоватьВладельца(Владелец); ВыборкаЦен.ВыбратьЭлементы(); Пока ВыборкаЦен.ПолучитьЭлемент()=1 Цикл Если КатегорияЦены = ВыборкаЦен.КатегорияЦены Тогда Если Выбран()=0 Тогда // для новой цена сравниваем только совпадение категории ФлагОшибки = 0; Прервать; Иначе // для сохраненного элемента проверить несовпадение категорий // недостаточно, т.к. из выборки можно получить редактируемый элемент // дублирование категорий может произойти только если совпадают // категории у разных элементов Если ТекущийЭлемент() <> ВыборкаЦен.ТекущийЭлемент() Тогда ФлагОшибки = 0; Прервать; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла;
Если ФлагОшибки = 0 Тогда Если ВыборкаЦен.ПометкаУдаления() = 1 Тогда Если Вопрос("У товара уже есть '"+КатегорияЦены+"' цена, помеченная на удаление. |Снять пометку удаления?","Да+Нет")="Да" Тогда // запишем выбранные значение в справочник // снимем пометку удаления Попытка ВыборкаЦен.СнятьПометкуУдаления(); Исключение Предупреждение(ОписаниеОшибки()); СтатусВозврата(0); Возврат; КонецПопытки; ДатаДляЗаписи = РабочаяДата(); ВвестиДату(ДатаДляЗаписи,"Дата периодических реквизитов"); ВыборкаЦен.Валюта. Установить(ДатаДляЗаписи,Валюта); ВыборкаЦен.Единица. Установить(ДатаДляЗаписи,Единица); ВыборкаЦен.Цена. Установить(ДатаДляЗаписи,Цена); ВыборкаЦен.Наценка = Наценка; ВыборкаЦен.Записать(); ЗаписатьВКонтекст(ВыборкаЦен.ТекущийЭлемент(),ДатаДляЗаписи); // закроем форму Форма.Закрыть(0); КонецЕсли; Иначе Предупреждение("У товара уже есть '"+КатегорияЦены+"' цена"); КонецЕсли; СтатусВозврата(0); Возврат; КонецЕсли;
Почти ветеран
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5
Цитата
При изменении цены товара иногда выдает ошибку.
Цитата
ОткрытьФормуМодально(Элемент,ФормаЗаписи) {Справочник.Номенклатура.Форма.Модуьб(846)}: SQL State HYT00 Native 0 Message: [Microsoft][ODBC SQL Server Driver]Время ожидания истекло..
После этого 1С виснет, процесс не грузит. Завершить сеанс можно только через Диспетчер задач.
Получается что ошибка именно в процедуры ИзменитьЦену(), но..
Цитата
ошибка возникает после нажатия на кнопку "Записать".
а в процедуре ПриЗаписи() нет вызова ИзменитьЦену(). Ищите где зависает ч-з отладчик, да и желательно проанализировать, когда именно зависает, а когда нет...
Поскольку база очень большая, а Цена скорее всего периодическая, то и таблица периодических значений тоже большая. Для SQL в настройках надо увеличить время ожидания. на ИТСе есть пример настройки SQL.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!