Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: обновление программы альфа-авто:автосервис +запчасти  (Прочитано 28508 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
ЕленаБух
Интересующийся

ru
Offline Offline

« : 21-12-2011 05:40 » 

возникла проблема по обновлению программы альфа-авто: автосервис+запчасти, перешли с платформы 8,1 на  8,2, сделала конвертацию, но при обновлении конфигурации, ничего не происходит, доходит до вкладки изменение объектов и все..
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 21-12-2011 09:10 » 

ЕленаБух, выдает ли какие-то сообщения на экран? Есть ли какие-то записи в журнале регистрации?
Записан
ЕленаБух
Интересующийся

ru
Offline Offline

« Ответ #2 : 21-12-2011 09:39 » 

нет просто зависла 1с, комп остался рабочим, при реорганизации базы, "принять" не подсвечено и внизу надпись имеются записи с одинаковыми регистрами и номерами строк

Добавлено через 1 час, 4 минуты и 48 секунд:
при обновлении 1С 8,2 программа изменила все данные (база была сконвертируема), а по цене написала, что есть записи с одинаковыми регистрами и номерами строк.
« Последнее редактирование: 21-12-2011 10:43 от ЕленаБух » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 21-12-2011 12:32 » 

Нужно анализировать обе конфигурации и избавляться от дублей записей.
Простой пример откуда ноги растут:
В версии Х создали регистр с измерением Организация
В версии Х+5 подумали что этого мало - добавили Магазин
В версии Х+10 поняли, что Магазин и так содержит органиацию - решили организаию убрать

Так вот, если каким-то образом в версии Х+5 (и до Х+9) появились записи с одинаковым Магазином и разными Организациями (не будем вдаваться в детали "как" - пример надуманый) - то при обновлении до Х+10 как раз и будет такая ошибка.

Как решить: перед обновлением удалить лишние записи из регистров (руками ии обработкой - зависит от количества записей)
Записан
ЕленаБух
Интересующийся

ru
Offline Offline

« Ответ #4 : 22-12-2011 04:58 » 

найти эти регистры и строки - проблематично, в связи с тем, что неизвестно что писали в первой программе платформы 8,1, какие регистры и  строки совпадают при конвертации. Если опять изменять вручную, то во-первых, смысл переходить на неписанную программу? нам необходима новая программа, чтобы можно было делать выгрузку товара на сайт.
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 22-12-2011 07:44 » 

найти эти регистры и строки - проблематично, в связи с тем, что неизвестно что писали в первой программе платформы 8,1, какие регистры и  строки совпадают при конвертации. Если опять изменять вручную, то во-первых, смысл переходить на неписанную программу?
Во-первых я предлагагаю изменять не программу, а данные (удалить лишние записи регистров). 1С должа сообщать какие регистры не могут быть сохраннены (в каких возникают дубли)
Во-вторых 1С не удаляет сама добавленных кем-то реквизитов - только те, которые удалили разработчики в новой версии


нам необходима новая программа, чтобы можно было делать выгрузку товара на сайт.
Если это единственная причина - может просто стоит перенести только этот функционал? Потому как не исключено, что вы потеряете функционал, к которому привыкли (дописанный вручную)
Записан
ЕленаБух
Интересующийся

ru
Offline Offline

« Ответ #6 : 22-12-2011 09:54 » 

Думаю не страшно изменить этот функционал. Мне подсказали , чтоб найти эти регистры надо сделать запрос select id from <нужная таблица> group by(id) where count(id)>1, а куда вставить в 1С - не подсказали Жжешь
Записан
ЕленаБух
Интересующийся

ru
Offline Offline

« Ответ #7 : 22-12-2011 10:42 » 

просмотрели в программе регистры цен, оказались пустые строки, посоветовали найти обработку по удалению этих строк... но есть ли такое вообще?
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 22-12-2011 13:20 » new

Думаю не страшно изменить этот функционал. Мне подсказали , чтоб найти эти регистры надо сделать запрос select id from <нужная таблица> group by(id) where count(id)>1, а куда вставить в 1С - не подсказали Жжешь
Неправильно подсказали запрос - id тут ни при чем

просмотрели в программе регистры цен, оказались пустые строки, посоветовали найти обработку по удалению этих строк... но есть ли такое вообще?

Вопрос - зависимли регистр от документов или нет? Откройте в режиме предприятия 8.1 Операции - Регистр сведений... - (Регистр цен) и двойным кликом откройте запись. Если откроется документ - тогда нужна обработка, если нет (откроется форма записи) - тогда расскажу как без нее
Записан
ЕленаБух
Интересующийся

ru
Offline Offline

« Ответ #9 : 23-12-2011 03:54 » 

регистр открылся, несколько вверху пустых строк, а потом  пошли документы с наименованием товара, ценами и т.д.

Добавлено через 1 час, 21 минуту и 54 секунды:
сегодня нашли обработку, при загружении обработки пишется сообщение ошибка загрузки, внешняя обработка не может быть прочитана текущей версии программы
« Последнее редактирование: 23-12-2011 05:16 от ЕленаБух » Записан
ЕленаБух
Интересующийся

ru
Offline Offline

« Ответ #10 : 23-12-2011 05:31 » 

в общем обработка не та  Я шокирован!, она удаляет все сведения((((
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 23-12-2011 07:13 » 

регистр открылся, несколько вверху пустых строк, а потом  пошли документы с наименованием товара, ценами и т.д.


Внимательно: я просил открыть запись регистра - то, что откроется список я даже не ставил под сомнение

несколько строк - попробуйте просто на них нажать Delete - удалятся или нет?

Кроме того рекомендую в режиме конфигуратора выполнить Администрирование - Тестирование и исправление... В режиме Тестирование и исправление со всеми включенными флажками режимов (Очищать ссылки, Удалять объект)

* sc-20111223091316.png (17.28 Кб - загружено 3152 раз.)
Записан
ЕленаБух
Интересующийся

ru
Offline Offline

« Ответ #12 : 23-12-2011 08:33 » 

{ПланВидовХарактеристик.ПраваИНастройки.МодульОбъекта(1404)}: Ошибка при вызове метода контекста (УстановитьПометкуУдаления)
         Право.УстановитьПометкуУдаления(Истина);
по причине:

по причине:
Не удалось записать "Режим префиксации Опции (Права и настройки)"!


Добавлено через 12 минут и 54 секунды:
это что такое?
« Последнее редактирование: 23-12-2011 08:46 от ЕленаБух » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 23-12-2011 09:05 » 

Это что-то специфическое для этой конфигурации....

Ну в том смысле, что программа не смогла записать объект, потому как не прошли какие-то проверки. Какие - не знаю. Это задано в конфигураторе:
 Для указанного вида объекта (ПланВидовХарактеристик.ПраваИНастройки), в модуле объекта ищите процедуру ПередЗаписью() - и нужно разбираться в ней...
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 23-12-2011 09:12 » 

В принципе платформа, когда выдает ошибку, обычно пишет номер строки с ошибкой и модуль:
ПланВидовХарактеристик.ПраваИНастройки.МодульОбъекта(1404)

Необходимо в этой строке установить точку останова (в конфигураторе: Отладка - Точка останова), запустить из конфигуратора базу в режиме отладки (F5 из конфигуратора), повторить действие в базе.
Когда выполнение остановится в точке останова - зайти "внутрь" процедуры (F11) и пройтись отладчиком по строкам (F10 / F11) до ошибки
Записан
ЕленаБух
Интересующийся

ru
Offline Offline

« Ответ #15 : 23-12-2011 09:34 » 

Код: (1C v8)
Процедура УдалитьПраваНесуществующихОбъектов(ОбъектыМетаданных,ГруппаРодитель,ПрефиксПрава)
        //Пометим на удаление права, для несуществующих документов
        Запрос=Новый Запрос;
        Запрос.Текст="ВЫБРАТЬ
                     |  ПраваИНастройки.Ссылка КАК Ссылка,
                     |  ПраваИНастройки.Наименование КАК Наименование
                     |ИЗ
                     |  ПланВидовХарактеристик.ПраваИНастройки КАК ПраваИНастройки
                     |ГДЕ
                     |  ПраваИНастройки.ПометкаУдаления = ЛОЖЬ
                     |  И ПраваИНастройки.ЭтоГруппа = ЛОЖЬ
                     |  И ПраваИНастройки.Родитель = &Родитель
                     |
                     |УПОРЯДОЧИТЬ ПО
                     |  Ссылка"
;
        Запрос.УстановитьПараметр("Родитель",ГруппаРодитель);
        Выборка=Запрос.Выполнить().Выбрать();
        ДлинаПрефикса=СтрДлина(ПрефиксПрава);
        Пока Выборка.Следующий() Цикл
                Имя=Выборка.Наименование;
                Позиция=Найти(Имя,ПрефиксПрава);
                Если Позиция>0 Тогда
                        Имя=Сред(Имя,Позиция+ДлинаПрефикса);
                КонецЕсли;
                Если ОбъектыМетаданных.Найти(Имя)=Неопределено Тогда
                        Право=Выборка.Ссылка.ПолучитьОбъект();
                        Право.УстановитьПометкуУдаления(Истина);1404
                        Попытка
                                Право.Записать();
                        Исключение
                                Сообщить("Ошибка пометки на удаление права <"+Выборка.Ссылка+">: ",ОписаниеОшибки());
                        КонецПопытки;
                КонецЕсли;
        КонецЦикла;
КонецПроцедуры // УдалитьПраваНесуществующихОбъектов()

Указывает на строку 1404 ошибку


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

Загрузка = ?(НЕ ДопЗагрузка = Неопределено,ДопЗагрузка,Загрузка); здесь F10  сразу останавливает


Добавлено через 2 дня, 17 часов, 31 минуту и 6 секунд:
что дальше делать?
« Последнее редактирование: 27-12-2011 06:53 от Kivals » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 26-12-2011 22:52 » 

1. Научиться пользоваться [code][/code] на форуме
2. Построчно пройти весь текст функции спПередЗаписью() отладчиком - отловить условие, по которому Отказ = Истина
Записан
ЕленаБух
Интересующийся

ru
Offline Offline

« Ответ #17 : 29-03-2012 12:01 » 

При печати Инвентаризация товаров Ц000000005 от 04.03.2012 17:13:27 обнаружены ошибки :
Обработчик печатной формы Инвентаризационная опись (ИНВ-3): {Документ.Инвентаризация(1611)}: Значение не является значением объектного типа (Код)
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #18 : 29-03-2012 22:29 » 

На окне, в котором вылазеет ошибка, есть кнопка "Конфигуратор". Нажмите на нее, откроется конфигуратор. В конфигураторе скопируйте текст процедуры с ошибкой и выложите сюда. Пометьте как-нибудь строку с ошибкой.
Записан
ЕленаБух
Интересующийся

ru
Offline Offline

« Ответ #19 : 11-04-2012 11:52 » 

спасибо ошибку нашли Улыбаюсь была заведена группа как товар. поэтому при ошибке указывалось на ошибку в строке кода товара.

Добавлено через 6 минут и 14 секунд:
сейчас опять возникла проблема Жаль..
есть одинаковые наименования с одинаковыми кодами (в свое время наши поставщики сделали выгрузку товара в нашу программу и затем при написании какой-то выгрузки товар повторно завелся в программу), теперь при выгрузке из торговли по правилам обмена, товар заводится на один код, а при загрузке данных автоматически оседает на этот же товар но на другой код (если он заведен дважды) т.е. пример : есть два наименования болт с кодом 01235 (все одинаковое), при автоматической выгрузке реализации продажу оседает на одно наименование болт 01235, а при автомаческой загрузке поступления на другой болт 01235.
наименование                 кол-во             
болт                                1
болт                                -1
можно ли исправить все данные автоматически или все исправлять вручную? объем товара  очень большой, и навряд ли вручную удастся исправить все колво товара:-(

« Последнее редактирование: 11-04-2012 11:58 от ЕленаБух » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 26-04-2012 07:40 » 

На диске ИТС (а также поиском в сети) есть обработка ПоискИЗаменаЗначений - нужно воспользоваться ей и свести дубли к одной записи. Лишние - пометить на удаление и удалить.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines