ЕленаБух
Интересующийся
Offline
|
|
« : 21-12-2011 05:40 » |
|
возникла проблема по обновлению программы альфа-авто: автосервис+запчасти, перешли с платформы 8,1 на 8,2, сделала конвертацию, но при обновлении конфигурации, ничего не происходит, доходит до вкладки изменение объектов и все..
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #1 : 21-12-2011 09:10 » |
|
ЕленаБух, выдает ли какие-то сообщения на экран? Есть ли какие-то записи в журнале регистрации?
|
|
|
Записан
|
|
|
|
ЕленаБух
Интересующийся
Offline
|
|
« Ответ #2 : 21-12-2011 09:39 » |
|
нет просто зависла 1с, комп остался рабочим, при реорганизации базы, "принять" не подсвечено и внизу надпись имеются записи с одинаковыми регистрами и номерами строк
Добавлено через 1 час, 4 минуты и 48 секунд: при обновлении 1С 8,2 программа изменила все данные (база была сконвертируема), а по цене написала, что есть записи с одинаковыми регистрами и номерами строк.
|
|
« Последнее редактирование: 21-12-2011 10:43 от ЕленаБух »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #3 : 21-12-2011 12:32 » |
|
Нужно анализировать обе конфигурации и избавляться от дублей записей. Простой пример откуда ноги растут: В версии Х создали регистр с измерением Организация В версии Х+5 подумали что этого мало - добавили Магазин В версии Х+10 поняли, что Магазин и так содержит органиацию - решили организаию убрать
Так вот, если каким-то образом в версии Х+5 (и до Х+9) появились записи с одинаковым Магазином и разными Организациями (не будем вдаваться в детали "как" - пример надуманый) - то при обновлении до Х+10 как раз и будет такая ошибка.
Как решить: перед обновлением удалить лишние записи из регистров (руками ии обработкой - зависит от количества записей)
|
|
|
Записан
|
|
|
|
ЕленаБух
Интересующийся
Offline
|
|
« Ответ #4 : 22-12-2011 04:58 » |
|
найти эти регистры и строки - проблематично, в связи с тем, что неизвестно что писали в первой программе платформы 8,1, какие регистры и строки совпадают при конвертации. Если опять изменять вручную, то во-первых, смысл переходить на неписанную программу? нам необходима новая программа, чтобы можно было делать выгрузку товара на сайт.
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #5 : 22-12-2011 07:44 » |
|
найти эти регистры и строки - проблематично, в связи с тем, что неизвестно что писали в первой программе платформы 8,1, какие регистры и строки совпадают при конвертации. Если опять изменять вручную, то во-первых, смысл переходить на неписанную программу? Во-первых я предлагагаю изменять не программу, а данные (удалить лишние записи регистров). 1С должа сообщать какие регистры не могут быть сохраннены (в каких возникают дубли) Во-вторых 1С не удаляет сама добавленных кем-то реквизитов - только те, которые удалили разработчики в новой версии нам необходима новая программа, чтобы можно было делать выгрузку товара на сайт.
Если это единственная причина - может просто стоит перенести только этот функционал? Потому как не исключено, что вы потеряете функционал, к которому привыкли (дописанный вручную)
|
|
|
Записан
|
|
|
|
ЕленаБух
Интересующийся
Offline
|
|
« Ответ #6 : 22-12-2011 09:54 » |
|
Думаю не страшно изменить этот функционал. Мне подсказали , чтоб найти эти регистры надо сделать запрос select id from <нужная таблица> group by(id) where count(id)>1, а куда вставить в 1С - не подсказали
|
|
|
Записан
|
|
|
|
ЕленаБух
Интересующийся
Offline
|
|
« Ответ #7 : 22-12-2011 10:42 » |
|
просмотрели в программе регистры цен, оказались пустые строки, посоветовали найти обработку по удалению этих строк... но есть ли такое вообще?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #8 : 22-12-2011 13:20 » |
|
Думаю не страшно изменить этот функционал. Мне подсказали , чтоб найти эти регистры надо сделать запрос select id from <нужная таблица> group by(id) where count(id)>1, а куда вставить в 1С - не подсказали Неправильно подсказали запрос - id тут ни при чем просмотрели в программе регистры цен, оказались пустые строки, посоветовали найти обработку по удалению этих строк... но есть ли такое вообще?
Вопрос - зависимли регистр от документов или нет? Откройте в режиме предприятия 8.1 Операции - Регистр сведений... - (Регистр цен) и двойным кликом откройте запись. Если откроется документ - тогда нужна обработка, если нет (откроется форма записи) - тогда расскажу как без нее
|
|
|
Записан
|
|
|
|
ЕленаБух
Интересующийся
Offline
|
|
« Ответ #9 : 23-12-2011 03:54 » |
|
регистр открылся, несколько вверху пустых строк, а потом пошли документы с наименованием товара, ценами и т.д.
Добавлено через 1 час, 21 минуту и 54 секунды: сегодня нашли обработку, при загружении обработки пишется сообщение ошибка загрузки, внешняя обработка не может быть прочитана текущей версии программы
|
|
« Последнее редактирование: 23-12-2011 05:16 от ЕленаБух »
|
Записан
|
|
|
|
ЕленаБух
Интересующийся
Offline
|
|
« Ответ #10 : 23-12-2011 05:31 » |
|
в общем обработка не та , она удаляет все сведения((((
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #11 : 23-12-2011 07:13 » |
|
регистр открылся, несколько вверху пустых строк, а потом пошли документы с наименованием товара, ценами и т.д.
Внимательно: я просил открыть запись регистра - то, что откроется список я даже не ставил под сомнение несколько строк - попробуйте просто на них нажать Delete - удалятся или нет? Кроме того рекомендую в режиме конфигуратора выполнить Администрирование - Тестирование и исправление... В режиме Тестирование и исправление со всеми включенными флажками режимов (Очищать ссылки, Удалять объект)
|
|
|
Записан
|
|
|
|
ЕленаБух
Интересующийся
Offline
|
|
« Ответ #12 : 23-12-2011 08:33 » |
|
{ПланВидовХарактеристик.ПраваИНастройки.МодульОбъекта(1404)}: Ошибка при вызове метода контекста (УстановитьПометкуУдаления) Право.УстановитьПометкуУдаления(Истина); по причине:
по причине: Не удалось записать "Режим префиксации Опции (Права и настройки)"!
Добавлено через 12 минут и 54 секунды: это что такое?
|
|
« Последнее редактирование: 23-12-2011 08:46 от ЕленаБух »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #13 : 23-12-2011 09:05 » |
|
Это что-то специфическое для этой конфигурации....
Ну в том смысле, что программа не смогла записать объект, потому как не прошли какие-то проверки. Какие - не знаю. Это задано в конфигураторе: Для указанного вида объекта (ПланВидовХарактеристик.ПраваИНастройки), в модуле объекта ищите процедуру ПередЗаписью() - и нужно разбираться в ней...
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #14 : 23-12-2011 09:12 » |
|
В принципе платформа, когда выдает ошибку, обычно пишет номер строки с ошибкой и модуль: ПланВидовХарактеристик.ПраваИНастройки.МодульОбъекта(1404)
Необходимо в этой строке установить точку останова (в конфигураторе: Отладка - Точка останова), запустить из конфигуратора базу в режиме отладки (F5 из конфигуратора), повторить действие в базе. Когда выполнение остановится в точке останова - зайти "внутрь" процедуры (F11) и пройтись отладчиком по строкам (F10 / F11) до ошибки
|
|
|
Записан
|
|
|
|
ЕленаБух
Интересующийся
Offline
|
|
« Ответ #15 : 23-12-2011 09:34 » |
|
Процедура УдалитьПраваНесуществующихОбъектов(ОбъектыМетаданных,ГруппаРодитель,ПрефиксПрава) //Пометим на удаление права, для несуществующих документов Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ПраваИНастройки.Ссылка КАК Ссылка, | ПраваИНастройки.Наименование КАК Наименование |ИЗ | ПланВидовХарактеристик.ПраваИНастройки КАК ПраваИНастройки |ГДЕ | ПраваИНастройки.ПометкаУдаления = ЛОЖЬ | И ПраваИНастройки.ЭтоГруппа = ЛОЖЬ | И ПраваИНастройки.Родитель = &Родитель | |УПОРЯДОЧИТЬ ПО | Ссылка"; Запрос.УстановитьПараметр("Родитель",ГруппаРодитель); Выборка=Запрос.Выполнить().Выбрать(); ДлинаПрефикса=СтрДлина(ПрефиксПрава); Пока Выборка.Следующий() Цикл Имя=Выборка.Наименование; Позиция=Найти(Имя,ПрефиксПрава); Если Позиция>0 Тогда Имя=Сред(Имя,Позиция+ДлинаПрефикса); КонецЕсли; Если ОбъектыМетаданных.Найти(Имя)=Неопределено Тогда Право=Выборка.Ссылка.ПолучитьОбъект(); Право.УстановитьПометкуУдаления(Истина);1404 Попытка Право.Записать(); Исключение Сообщить("Ошибка пометки на удаление права <"+Выборка.Ссылка+">: ",ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецЦикла; КонецПроцедуры // УдалитьПраваНесуществующихОбъектов() Указывает на строку 1404 ошибку Добавлено через 1 час, 30 минут и 44 секунды:Функция спПередЗаписью(ЭтотОбъект,Отказ,ДопРеквизиты=Неопределено,Заполнение=Истина,Уникальность=Истина) Экспорт Результат = Истина; Попытка // Для редких случаев, когда ЭтотОбъект неопределен // проверку на режим обмена данными делаем через попытку Загрузка = ЭтотОбъект.ОбменДанными.Загрузка; Если Загрузка Тогда // если текущий режим Загрузка, то производим минимум проверок // т.к. все проверки были произведены в ИБ источнике Возврат Ложь; КонецЕсли; ДопЗагрузка = Неопределено; Если НЕ Загрузка Тогда ЭтотОбъект.ДополнительныеСвойства.Свойство("Загрузка",ДопЗагрузка); Загрузка = ?(НЕ ДопЗагрузка = Неопределено,ДопЗагрузка,Загрузка); КонецЕсли; Если Загрузка Тогда Возврат Ложь; КонецЕсли; Исключение КонецПопытки; ТекстОшибки=""; // Выполним проверки прав доступа к элементу Если обПраво("ПроверкаДоступаКСправочникамИДокументам",ЭтотОбъект.Права) Тогда // проверка доступа редактирования, при смене родителя объекта Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(ЭтотОбъект.Ссылка)) Тогда Если ЭтотОбъект.Ссылка.Родитель<>ЭтотОбъект.Родитель Тогда //сначала проверим можно ли редактировать старого родителя спПроверкаПраваДоступа(ЭтотОбъект,Отказ,,ЭтотОбъект.Права); спПроверкаПраваДоступа(ЭтотОбъект.Родитель,Отказ,,ЭтотОбъект.Права); Иначе // Проверка на допустимость редактирования справочника по текущему пользователю спПроверкаПраваДоступа(ЭтотОбъект,Отказ,,ЭтотОбъект.Права); КонецЕсли; КонецЕсли; // Проверим элемент на использование его в константах Если ЭтотОбъект.ЭтоНовый() ИЛИ (НЕ ЭтотОбъект.Модифицированность()) ИЛИ обПраво("РедактированиеОбъектовЗначенийКонстант",ЭтотОбъект.Права) Тогда // тогда не нужно даже проверять Иначе ИмяКонстанты = ""; Если обОбъектУказанВКонстантах(ЭтотОбъект,ИмяКонстанты) Тогда Отказ = Истина; ТекстОшибки = "Элемент не может быть изменен т.к. указан в значении константы """+ИмяКонстанты+""""; КонецЕсли; КонецЕсли; КонецЕсли; // Выполним проверку корректности заполнения Если НЕ ЭтотОбъект.ПометкаУдаления Тогда Отказ = Отказ ИЛИ НЕ ЭтотОбъект.ПроверитьКорректность(ТекстОшибки, ДопРеквизиты, Заполнение, Уникальность); КонецЕсли; // Индикация ошибок Если (Отказ) И (НЕ ПустаяСтрока(ТекстОшибки)) Тогда Имя = ЭтотОбъект.Метаданные().Представление(); Сообщить("Перед записью элемента - "+Имя+":"+СокрЛП(ЭтотОбъект)+" обнаружены ошибки :",СтатусСообщения.Внимание); Сообщить(ТекстОшибки); КонецЕсли; Возврат Результат; КонецФункции // спПередЗаписью() Загрузка = ?(НЕ ДопЗагрузка = Неопределено,ДопЗагрузка,Загрузка); здесь F10 сразу останавливает Добавлено через 2 дня, 17 часов, 31 минуту и 6 секунд:что дальше делать?
|
|
« Последнее редактирование: 27-12-2011 06:53 от Kivals »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #16 : 26-12-2011 22:52 » |
|
1. Научиться пользоваться [code][/code] на форуме 2. Построчно пройти весь текст функции спПередЗаписью() отладчиком - отловить условие, по которому Отказ = Истина
|
|
|
Записан
|
|
|
|
ЕленаБух
Интересующийся
Offline
|
|
« Ответ #17 : 29-03-2012 12:01 » |
|
При печати Инвентаризация товаров Ц000000005 от 04.03.2012 17:13:27 обнаружены ошибки : Обработчик печатной формы Инвентаризационная опись (ИНВ-3): {Документ.Инвентаризация(1611)}: Значение не является значением объектного типа (Код)
|
|
|
Записан
|
|
|
|
Dest
Опытный
Offline
|
|
« Ответ #18 : 29-03-2012 22:29 » |
|
На окне, в котором вылазеет ошибка, есть кнопка "Конфигуратор". Нажмите на нее, откроется конфигуратор. В конфигураторе скопируйте текст процедуры с ошибкой и выложите сюда. Пометьте как-нибудь строку с ошибкой.
|
|
|
Записан
|
|
|
|
ЕленаБух
Интересующийся
Offline
|
|
« Ответ #19 : 11-04-2012 11:52 » |
|
спасибо ошибку нашли была заведена группа как товар. поэтому при ошибке указывалось на ошибку в строке кода товара. Добавлено через 6 минут и 14 секунд:сейчас опять возникла проблема .. есть одинаковые наименования с одинаковыми кодами (в свое время наши поставщики сделали выгрузку товара в нашу программу и затем при написании какой-то выгрузки товар повторно завелся в программу), теперь при выгрузке из торговли по правилам обмена, товар заводится на один код, а при загрузке данных автоматически оседает на этот же товар но на другой код (если он заведен дважды) т.е. пример : есть два наименования болт с кодом 01235 (все одинаковое), при автоматической выгрузке реализации продажу оседает на одно наименование болт 01235, а при автомаческой загрузке поступления на другой болт 01235. наименование кол-во болт 1 болт -1 можно ли исправить все данные автоматически или все исправлять вручную? объем товара очень большой, и навряд ли вручную удастся исправить все колво товара:-(
|
|
« Последнее редактирование: 11-04-2012 11:58 от ЕленаБух »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #20 : 26-04-2012 07:40 » |
|
На диске ИТС (а также поиском в сети) есть обработка ПоискИЗаменаЗначений - нужно воспользоваться ей и свести дубли к одной записи. Лишние - пометить на удаление и удалить.
|
|
|
Записан
|
|
|
|
|