26.11.2007, 10:21 | #1 |
Участник
|
Товарищи, подскажите, где искать ошибку:
При попытке учета "Заказа Продажи" Navision выдает сообщение "Сервисный Центр Настройка Первичный Ключ '' не существует" При этом доступа к упомянутой таблице у меня нет, наверное, ввиду отсутствия соответствующей гранулы. Я где-нибудь сделал неправильные настройки, намекните, пожалуйста, где (или как) искать. (лицензия только пользовательская, в смысле нет полного доступа разработчика) |
|
26.11.2007, 11:26 | #2 |
Участник
|
Цитата:
Сообщение от Rem2
Товарищи, подскажите, где искать ошибку:
При попытке учета "Заказа Продажи" Navision выдает сообщение "Сервисный Центр Настройка Первичный Ключ '' не существует" При этом доступа к упомянутой таблице у меня нет, наверное, ввиду отсутствия соответствующей гранулы. Я где-нибудь сделал неправильные настройки, намекните, пожалуйста, где (или как) искать. (лицензия только пользовательская, в смысле нет полного доступа разработчика) Включите дебаггер. Там где выпадет ошибка, скорее всего будет строка типа: IF "КакойтоSetup"."Какое-то Поле" THEN ServiceMgtSetup.GET; Вот эту то галку и снимите. |
|
26.11.2007, 12:50 | #3 |
Участник
|
Цитата:
IF NOT (SalesHeader."Document Type" IN [SalesHeader."Document Type"::Заказ,SalesHeader."Document Type"::Счет]) THEN EXIT; ServMgtSetup.GET; и т.д. Т. е., если я правильно понимаю, ошибочно происходит вызов именно Codeunit 5920 ServItemManagment, а по какому условию он вызывается я не могу посмотреть: клавиша F9 в Object Designer неактивна (или не знаю, как иначе это можно сделать ) |
|
26.11.2007, 13:03 | #4 |
Участник
|
Цитата:
Сообщение от Rem2
Дебаггер обнаруживает ошибку внутри уже вызванного Codeunit'а 5920 ServItemManagment:
IF NOT (SalesHeader."Document Type" IN [SalesHeader."Document Type"::Заказ,SalesHeader."Document Type"::Счет]) THEN EXIT; ServMgtSetup.GET; и т.д. Т. е., если я правильно понимаю, ошибочно происходит вызов именно Codeunit 5920 ServItemManagment, а по какому условию он вызывается я не могу посмотреть: клавиша F9 в Object Designer неактивна (или не знаю, как иначе это можно сделать ) А F9, просто, активно не во всех строках (и ей можно пользоваться сразу из дебаггера). |
|
26.11.2007, 14:30 | #5 |
Участник
|
Цитата:
Сообщение от Fordewind
Это интересней. В дебаггере есть окно, в котором указывается порядок вызовов функций (Call Stack). Если пощелкать по строкам в этом стеке, то можно прийти к тому месту (или примерно к нему), от которого все пошло "не туда".
А F9, просто, активно не во всех строках (и ей можно пользоваться сразу из дебаггера). Нашел что-то похожее в Codeunit 80 Sales-Post\OnRun() ... SalesShptLine.INSERT; IF ServDocType = 0 THEN ServItemMgt.CreateServItemOnSalesLineShpt(Rec,TempSalesLine,SalesShptLine); ... только не пойму, (к своему стыду) что такое, в данном случае SalesShptLine и ServDocType |
|
26.11.2007, 15:00 | #6 |
Участник
|
Это Nav пытается создать сервисный товар. Если бы Вы не сказали, что у вас нет гранулы с Сервисом, то я бы решил, что в карточке товара заполнено поле "Сервисный Товар Группа"... НО Вы все же проверьте...
|
|
26.11.2007, 15:05 | #7 |
Участник
|
Цитата:
А потом поссмотрите как меняется переменная ServDocType и SalesHeader."Document Type" (если оно у Вас меняется) P.S. версию укажите, потому что 3 меня 3.70 и 5.0, а там код разный ;-) |
|
26.11.2007, 15:38 | #8 |
Участник
|
Я проверил, поле "Сервисный Товар Группа" пустое и при попытке в него войти система сообщает "Вы не имеете права запуска "Сервисный Товар Группа" Form"
|
|
26.11.2007, 15:49 | #9 |
Участник
|
Цитата:
После ее установки при попытке выполнить учет документа, дебаггер выдает другое место ошибки: ServDocType := 0; IF "Service Mgt. Document" THEN BEGIN CLEAR(ServDocReg); IF ServDocReg.ServiceDocument("Document Type","No.",ServDocType,ServDocNo) THEN //Break on Error CheckServFields(); END; К сожалению, переменные ServDocType и SalesHeader."Document Type" я, пока, не смог найти У меня версия Navision 4.0 SP2 |
|
26.11.2007, 16:43 | #10 |
Moderator
|
А Вы случайно не в Кроносе пытаетесь работать? под своей собственной лицензией?
|
|
26.11.2007, 17:00 | #11 |
Участник
|
Цитата:
Нет, я не в Кроносе. Хотя, я Вашу мысль понял, и, наверное, ноги этой проблемы растут все-таки оттуда. Дело в том, что я при первоначальной настройке фирмы некоторые таблицы копировал из Кроноса с помощью штатного инструмента План настройки/Функции/Копирование данных. Наверное, какой-нибудь ненужный параметр механически попал в новую фирму. Вы уже видели мои мытарства, дайте совет - здесь проще заново вчистую сделать настройки с нуля или все-таки можно исправить существующую фирму. Это интересно понять не только с точки зрения данной конкретной ситуации, но и вообще в плане методики настройки. И еще, в плане копирования, можно ли что-нибудь, в таком случае, копировать из Кроноса вообще? |
|
26.11.2007, 18:03 | #12 |
Участник
|
Я сталкивался с похожей ошибкой, когда у клиента не было гранулы Сервисный Центр, а какие-то таблицы, относящиеся к ней, содержали записи. Какие именно таблицы, к сожалению, не помню. Попробуйте покопать в этом направлении.
|
|
26.11.2007, 20:00 | #13 |
Участник
|
Цитата:
Сообщение от Rem2
Вы уже видели мои мытарства, дайте совет - здесь проще заново вчистую сделать настройки с нуля или все-таки можно исправить существующую фирму. Это интересно понять не только с точки зрения данной конкретной ситуации, но и вообще в плане методики настройки.
И еще, в плане копирования, можно ли что-нибудь, в таком случае, копировать из Кроноса вообще? |
|
27.11.2007, 12:02 | #14 |
Участник
|
ПРоверил код. ServItemMgt можно запускать под гранулой General Ledger - Basic General Ledger., а практически первым делом что делает эта функция ServMgtSetup.GET; В общем надо создать запись в этой таблице, чтобы нав заработал. Может через SQL? или попробуйте запустить 2 codeunit
|
|
27.11.2007, 13:45 | #15 |
Участник
|
Цитата:
Сообщение от Kashin
ПРоверил код. ServItemMgt можно запускать под гранулой General Ledger - Basic General Ledger., а практически первым делом что делает эта функция ServMgtSetup.GET; В общем надо создать запись в этой таблице, чтобы нав заработал. Может через SQL? или попробуйте запустить 2 codeunit
|
|
27.11.2007, 15:37 | #16 |
Участник
|
Спасибо большое, у меня прогресс
Расскажу по порядку: Цитата:
В существующей записи некоторые поля по умолчанию уже были заполнены. Поле "первичный ключ" было пустое, свойства поля посмотреть не удалось - в дизайнере таблица не открывалась. При попытке внести значение в поле "первичный ключ" система ругнулась вроде того, что поле заполнять не нужно. Учитывая то, что проблемы начались именно с сообщения "Сервисный Центр Настройка Первичный Ключ не существует", и то, что запись, пусть с не всеми заполненными полями, но уже существовала, я встал в некоторый тупик. Кстати, попутный вопрос, при попытке открытия той же таблицы под своей лицензией, Navision сообщал:"Вы не имеете права запуска таблицы Сервисный Центр Настройка. Обратитесь к вашему системному администратору для изменения ваших прав доступа" Означает ли фраза про права доступа только отсутствие нужной гранулы в лицензии, или может иметься ввиду проблема в других настройках. На уровне разграничения прав доступа у меня вообще нет никаких пока настроек, т. е., как я понимаю, и ограничений этих прав тоже нет. Цитата:
Сообщение от Kashin
ПРоверил код. ServItemMgt можно запускать под гранулой General Ledger - Basic General Ledger., а практически первым делом что делает эта функция ServMgtSetup.GET; В общем надо создать запись в этой таблице, чтобы нав заработал. Может через SQL? или попробуйте запустить 2 codeunit
|
|
27.11.2007, 19:22 | #17 |
Участник
|
Цитата:
Сообщение от Rem2
Кстати, попутный вопрос, при попытке открытия той же таблицы под своей лицензией, Navision сообщал:"Вы не имеете права запуска таблицы Сервисный Центр Настройка. Обратитесь к вашему системному администратору для изменения ваших прав доступа"
Означает ли фраза про права доступа только отсутствие нужной гранулы в лицензии, или может иметься ввиду проблема в других настройках. На уровне разграничения прав доступа у меня вообще нет никаких пока настроек, т. е., как я понимаю, и ограничений этих прав тоже нет. Cronus имеет доступ почти ко всем объектам, но присутствует ограничения, например, на название фирмы и кол-во записей. |
|
29.11.2007, 12:49 | #18 |
Участник
|
Спасибо большое всем, кто откликнулся и помог мне разобраться
|
|