Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> зависание 7.7 , ms sql          
alex040269 Подменю пользователя
сообщение 28.06.13, 16:35
Сообщение #1

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Платформа 7.70.027
Конфигурация ТиС, переписанная вдоль и поперек. База большая.
MS SQL Express

При изменении цены товара иногда выдает ошибку.

Цитата
ОткрытьФормуМодально(Элемент,ФормаЗаписи)
{Справочник.Номенклатура.Форма.Модуьб(846)}: SQL State HYT00 Native 0 Message: [Microsoft][ODBC SQL Server Driver]Время ожидания истекло.
.

После этого 1С виснет, процесс не грузит. Завершить сеанс можно только через Диспетчер задач.

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


Вопроса 2.

1.Может кто-то сталкивался с подобным?
2.Как сэмулировть превышение времени ожидания на тестовой базе MS SQL 2008 R2 Evolution.
ну или MS SQL 2005 Express.(переустановлю)

Спасибо.




Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

logist Подменю пользователя
сообщение 28.06.13, 16:56
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

В логе SQL что-то есть по этому поводу?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

alex040269 Подменю пользователя
сообщение 28.06.13, 17:45
Сообщение #3

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

не нашел sad.gif


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Fynjy Подменю пользователя
сообщение 29.06.13, 6:45
Сообщение #4

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

А что в процедуре ПриОткрытии для данной формы?


Signature

igmig65 Подменю пользователя
сообщение 29.06.13, 7:33
Сообщение #5

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5

Цитата
<--- строка 846

а что это за хрень????

Ardi Подменю пользователя
сообщение 29.06.13, 11:03
Сообщение #6

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Терминал?


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

alex040269 Подменю пользователя
сообщение 29.06.13, 16:07
Сообщение #7

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(igmig65 @ 29.06.13, 8:33) *
а что это за хрень????

я просто указал, где строка с ошибкой.

Цитата(Fynjy @ 29.06.13, 7:45) *
А что в процедуре ПриОткрытии для данной формы?

ошибка возникает после нажатия на кнопку "Записать".

окно закрывается, появляется собщение об ошибке и 1С перестает реагировать.

не всегда так, но приходится снимать процесс 1С в диспетчере задач.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

igmig65 Подменю пользователя
сообщение 29.06.13, 18:19
Сообщение #8

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5

Цитата
я просто указал, где строка с ошибкой.

в смысле здесь на форуме? или в коде?
Цитата
ошибка возникает после нажатия на кнопку "Записать".

так тогда нужен код процедуры ПриЗаписи()

Сообщение отредактировал igmig65 - 29.06.13, 18:21

Fynjy Подменю пользователя
сообщение 29.06.13, 20:27
Сообщение #9

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Цитата(igmig65 @ 29.06.13, 19:19) *
так тогда нужен код процедуры ПриЗаписи()

Фигасе ... Модально в ПриЗаписи ... Убил бы нахрен ...


Signature

Спасибо сказали: Домовик,

logist Подменю пользователя
сообщение 30.06.13, 8:30
Сообщение #10

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(igmig65 @ 29.06.13, 19:19) *
в смысле здесь на форуме? или в коде?

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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

alex040269 Подменю пользователя
сообщение 30.06.13, 8:31
Сообщение #11

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(igmig65 @ 29.06.13, 19:19) *
в смысле здесь на форуме? или в коде?

так тогда нужен код процедуры ПриЗаписи()

на форуме, конечно, для лучшего представления картины читающих, помогающих.


ПриЗаписи код скорее всего такой же как в типовой.

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

    Наименование = КатегорияЦены.Наименование;

    глЗаписьПериодическихРеквизитов(Контекст);
КонецПроцедуры    // ПриЗаписи




Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

igmig65 Подменю пользователя
сообщение 01.07.13, 9:24
Сообщение #12

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5

Цитата
При изменении цены товара иногда выдает ошибку.

Цитата

ОткрытьФормуМодально(Элемент,ФормаЗаписи)
{Справочник.Номенклатура.Форма.Модуьб(846)}: SQL State HYT00 Native 0 Message: [Microsoft][ODBC SQL Server Driver]Время ожидания истекло..

После этого 1С виснет, процесс не грузит. Завершить сеанс можно только через Диспетчер задач.

Получается что ошибка именно в процедуры ИзменитьЦену(), но..
Цитата
ошибка возникает после нажатия на кнопку "Записать".

а в процедуре ПриЗаписи() нет вызова ИзменитьЦену().
Ищите где зависает ч-з отладчик, да и желательно проанализировать, когда именно зависает, а когда нет...

Acid Подменю пользователя
сообщение 01.07.13, 10:38
Сообщение #13

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 379 раз
Рейтинг: 0

Поскольку база очень большая, а Цена скорее всего периодическая, то и таблица периодических значений тоже большая. Для SQL в настройках надо увеличить время ожидания. на ИТСе есть пример настройки SQL.


Signature

Документируйте Код! мать вашу...


Спасибо сказали: alex040269,

XBrut Подменю пользователя
сообщение 03.07.13, 6:10
Сообщение #14

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 256 раз
Рейтинг: 0

в мене по суті все те ж саме, але база дбф.
так взагалі давно зрозумів, що треба залишити лише актуальні ціни....

Спасибо сказали: alex040269,

Домовик Подменю пользователя
сообщение 03.07.13, 8:20
Сообщение #15

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

а где вызывается ИзменитьЦену() ? в формуле поля формы?

Сообщение отредактировал Домовик - 03.07.13, 8:30

Fynjy Подменю пользователя
сообщение 03.07.13, 8:50
Сообщение #16

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Цитата(XBrut @ 03.07.13, 7:10) *
в мене по суті все те ж саме, але база дбф.
так взагалі давно зрозумів, що треба залишити лише актуальні ціни....

Сделайте копию таблицу в ИБ и затем почистите ее.


Signature

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 0:50
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!