Re: Ошибка при заполнении заголовочных реквизитов

Добрый день!

Периодически у пользователя системы вываливается сообщение об ошибке. 

"Спецификация" - "Заголовочные реквизиты" - при нажатии на кнопку "Заполнить по значениями по умолчанию"

SQL Server Error: A cursor with the name 'procedure_cursor' does not exist.

Подскажите как с этим бороться.


WinXPPro
TechnologiCS v. 4.7.1.0 (8886) PDM

MS SQL Server 2000 + sp4

Re: Ошибка при заполнении заголовочных реквизитов

Такое сообщение возникает упользователя, когда он многократно пытается заполнить поля умолчаниями.

При этом поля заполняются правильно, а сообщение мы исправим.
Кстати картинка у Вас не от 4.7.1.0. Там должна быть такая:
Ошибка при заполнении заголовочных реквизитов

please-change-link

Re: Ошибка при заполнении заголовочных реквизитов

Такое сообщение возникает упользователя, когда он многократно пытается заполнить поля умолчаниями.


Сделал следующим образом:
1. создал номенклатурную позицию;
2. создал версию спецификации на номенклатурную позицию;
3. в заголовочных реквизитах неправильно заполнил реквизит "Разработал";
4. нажал кнопку "Заполнить по значениями по умолчанию" (должно было заполниться 5-ть реквизитов);
5. при этом на экране появилось сообщение об ошибке;
6. нажал кнопку "ОК";
7. ни один из реквизитов не заполнился, а на экране как был заполнен неправильно один реквизит так и остался;


При этом поля заполняются правильно...

Реквизиты вообще не заполняются.  :!:


Кстати картинка у Вас не от 4.7.1.0.

Действительно, из 4.7.0.0. Обновились до 4.7.1.0 на днях.  :lol:

Re: Ошибка при заполнении заголовочных реквизитов

Данный режим работает следующим образом:

1. Создаете версию спецификации
2. Заполняете ее заголовочными реквизитами по умолчанию

При этом:

1. Нельзя запомнить заголовочные реквизиты если в спецификации нет ни одной записи.
2. Как только Вы исправляете руками ХОТЬ ОДНО поле в заголовочных реквизитах, заполнение по умолчанию отключается.

Сделано это (из опыта нашей работы) для того, чтобы когда реквизитов много, и ряд из них поправлен руками, не возникало ошибок при случайном нажатии на данную кнопку.

Re: Ошибка при заполнении заголовочных реквизитов

При этом:

1. Нельзя запомнить заголовочные реквизиты если в спецификации нет ни одной записи.


Можно, при создании версии спецификации перейдите на закладку "Заголовочные реквизиты" и заполняйте реквизиты как хотите. При этом ни одной позиции в спецификации не будет!


2. Как только Вы исправляете руками ХОТЬ ОДНО поле в заголовочных реквизитах, заполнение по умолчанию отключается.

Сделано это (из опыта нашей работы) для того, чтобы когда реквизитов много, и ряд из них поправлен руками, не возникало ошибок при случайном нажатии на данную кнопку.


Я думаю, стоит пересмотреть такой подход и предоставить пользователю больше возможностей при работе с заголовочными реквизитами.

Re: Ошибка при заполнении заголовочных реквизитов

Да, таким способом можно задать заголовочные реквизиты

Re: Ошибка при заполнении заголовочных реквизитов

Да не проблема... Если наш способ почему-либо не устраивает, напишите свой макрос. Например так:

Sub FormMacro_ADDR(TCSActiveModule)  
'
TCSActiveModule.First                 
Do While Not TCSActiveModule.EOF                       
    If TCSActiveModule.Properties("NAME").Value = "Разработал" Then
        Call TCSActiveModule.Edit
          TCSActiveModule.Properties("VALUE").Value = "Иванов"
        On Error Resume Next
        Call TCSActiveModule.SaveChanges
        Call TCSActiveModule.CancelChanges 
    End If
    If TCSActiveModule.Properties("NAME").Value = "Проверил" Then
        Call TCSActiveModule.Edit
          TCSActiveModule.Properties("VALUE").Value = "Сидоров"
        On Error Resume Next
        Call TCSActiveModule.SaveChanges
        Call TCSActiveModule.CancelChanges 
    End If  
TCSActiveModule.Next                     
Loop
End Sub

Re: Ошибка при заполнении заголовочных реквизитов

Кто и где будет заполнять

... "Иванов" ...
... "Сидоров ...

:?:  :?:  :?:

Re: Ошибка при заполнении заголовочных реквизитов

А сейчас кто и где заполняет?

Re: Ошибка при заполнении заголовочных реквизитов

Опишу проблему подробнее, что бы в дальнейшем избежать вот этого

А сейчас кто и где заполняет?


Итак,
мой вопрос

2. Как только Вы исправляете руками ХОТЬ ОДНО поле в заголовочных реквизитах, заполнение по умолчанию отключается.

Сделано это (из опыта нашей работы) для того, чтобы когда реквизитов много, и ряд из них поправлен руками, не возникало ошибок при случайном нажатии на данную кнопку.


Я думаю, стоит пересмотреть такой подход и предоставить пользователю больше возможностей при работе с заголовочными реквизитами.


ваш ответ:

Да не проблема... Если наш способ почему-либо не устраивает, напишите свой макрос. Например так:


Sub FormMacro_ADDR(TCSActiveModule)  
' 
TCSActiveModule.First                  
Do While Not TCSActiveModule.EOF                        
    If TCSActiveModule.Properties("NAME").Value = "Разработал" Then 
        Call TCSActiveModule.Edit 
          TCSActiveModule.Properties("VALUE").Value = "Иванов" 
        On Error Resume Next 
        Call TCSActiveModule.SaveChanges 
        Call TCSActiveModule.CancelChanges 
    End If 
    If TCSActiveModule.Properties("NAME").Value = "Проверил" Then 
        Call TCSActiveModule.Edit 
          TCSActiveModule.Properties("VALUE").Value = "Сидоров" 
        On Error Resume Next 
        Call TCSActiveModule.SaveChanges 
        Call TCSActiveModule.CancelChanges 
    End If  
TCSActiveModule.Next                      
Loop 
End Sub

пояснения:
В коде меня больше всего заитересовали две строки:

...
TCSActiveModule.Properties("VALUE").Value = "Иванов" 
...
TCSActiveModule.Properties("VALUE").Value = "Сидоров"
...

Если в скрипте будет жестко забито "Иванов", "Сидоров", то при изменении проверяющего допустим на "Петров" необходимо будет внести изменения в скрипт.

Изменение в скрипт может внести только администратор, но никак не пользователь!!!
Мы возвращаемся к тому, что пользователь должен каждый раз обращаться к администратору за помощью. Этот вариант нам не подходит!

Берем следующий вариант, скрипт берет информацию "Разработал", "Проверил", допустим, из текстового файла на компьютере пользователя, который сам пользователь может конфигурировать. Но это тоже не то, ведь пользователь не должен отвлекаться на копировать/вставить из TCS в текстовый файл, а должен используя инструмент "Установить значение по умолчанию" работать с TCS.

И приходим мы в итоге к тому, что использование данного ПОЛЕЗНОГО инструмента ("Заполнить по значениями по умолчанию") становится невозможным!!!

В связи с этим, я думаю, стоит пересмотреть подход к использованию этого инструмента и предоставить пользователю больше возможностей при работе с заголовочными реквизитами.  :!:  :!:  :!: