1с 77 объект не может быть перепозиционирован

Обновлено: 03.07.2024

Программы » 1С:Предприятие 1C - 1C: Вопросы по конфигурациям
Варезник » 1C:Предприятие 7.7 - 1С:Предприятие v.8.x - 1C Диск ИТС - 1С: Совместимо 8.х Топик 1C Ebooks
ЗДЕСЬ (обновлено 22.02.14 ) - небольшая библиотечка (книги, документация, видео, утилиты) по 1С, финансам, бухучету и т.п.
Все рассортировано по версиям. Для заблудившихся в трех соснах >>> FAQ по форуму RU.Board

// Обработчик события формы.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Объект.ЭтаБазаДанныхБухгалтерияПредприятия = Метаданные.Имя = "БухгалтерияПредприятия";
Объект.ЭтаБазаДанныхЗарплатаИУправлениеПерсоналом = Метаданные.Имя = "ЗарплатаИУправлениеПерсоналом";

Если Объект.ЭтаБазаДанныхБухгалтерияПредприятия Тогда
Объект.Организация = БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
ИначеЕсли Объект.ЭтаБазаДанныхЗарплатаИУправлениеПерсоналом Тогда
Объект.Организация = РегламентированнаяОтчетность.ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
Иначе
ВызватьИсключение "Неизвестная конфигурация";
КонецЕсли;


При запуске обработки в БП все ништячком, но стоит запустить в ЗУП, как ловим ошибку "Переменная не определена (БухгалтерскийУчетПереопределяемый)".
Понятное дело, так как в ЗУП нет модуля "БухгалтерскийУчетПереопределяемый".

Как обойти это место не используя оператор "Выполнить"?

Есть даже потребность целые куски кода препроцессором отрубать ну типа так, хотя так не работает увы

Если ФормаСФункциямиБух не главная, компиляция её модуля не будет происходить пока мы к ней не обратимся, т.е. мы сможем запустить обработку и пока не обратимся к данной форме, ошибку не увидим. но это конечно изврат.

ОбщегоНазначенияКлиентСервер - код просто для примера из старой старой обработки. Я вообще стараюсь не тянуть функции из общих модулей во внешних обарботках, а то после обновлений приходится искать, что переименовали, какой параметр добавили и т.д.

это мечты просто, но блин как бы это помогло.

по поводу дополнительных форм, нет, не канает, у меня в обработке в ее модуле свыше 12000 строк и стягивать по разным формам вызовы методов общих модулей ужас. так еще есть главная форма, и больше десятка второстепенных форм вызываемых из главной. главная форма типа лаунчер вспомогательных форм, а во вспомогательных формах идет обращение к сторонней базе данных на голом MS SQL + Delphi XE2 как недожирный клиент, с бизнес логикой в кнопочках.

в итоге в главной форме и модуле обработки много кода, типа получить логин и пароль пользователя в базе SQL, потом сервер и саму базу, потом проверить подключение и введенные логин с паролем и тд. и тп., сейчас все заточено под БП 3.0, но нужно еще и ряд вещей конвертировать в ЗУП 3.0 (пока готовимся к ней)
И вот дилемма:
1 - тащить в отдельную обработку кучу кода и реализовывать обмен с ЗУП 3.0 независимо
2 - все в одной гибридной обработке реализовать посредством хотя бы того же обмана компилятора выкрутасами типа вызова ОбщегоНазначения.ОбщийМодуль(. )
3 - растащить по тому десятку второстепенных форм специфичный для них код (когда не нужно, форма не откроется, ошибки не посыпятся) создав гибрид, но там в методах все равно много вызовов общих с другими формами методов. каша выйдет боюсь.

Talkman --> Talkman



Просмотр профиля

Доброе время суток. Помогите пожалуйста найти ошибку и скажите что делаю не так.

Ошибка на второй итерации при попытке найти документ по номеру.

alex040269 --> alex040269



Просмотр профиля ДокР = СоздатьОбъект("Документ");
. Пока ПустаяСтрока(Файл)=0 Цикл Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП Talkman --> Talkman



Просмотр профиля Работает. На сколько я понял нелья юзать НайтиПоНомеру() если уже выбран другой документ? Ardi --> Ardi



Просмотр профиля

Это разные типы объектов.

1. Выборка документов.
2. ДокументСсылка

Cthulhu --> Cthulhu



Просмотр профиля
за "СоздатьОбъект" в теле цикла - убивать на месте.
Достаточно просто выкинуть (или закомментировать - если выкидывать жалко, или хочется видеть памятники своим ошибкам) строку


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
RSS
Текстовая версия Сейчас: 23.11.21, 18:53

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

Как правильно переместить найденный объект в другую группу, почему вываливается сабж ?

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

Кажется, был в 7-ке метод, позволяющий не иерархически выбирать элементы, что-то типа ПорядокКодов. Тогда выборка не сбивается.

У ТС есть группа, которую перебирать надо (РодДляТД). Не самое разумное решение перебирать весь справочник без иерархии. Вдруг там несколько сотен тысяч элементов :)

интересно вот это ТекЭл.Родитель = ""; Если ТекЭл.Родитель <> РодДляТД Тогда зачем сравнивать заведомо пустое значение с чем либо?

> зачем сравнивать заведомо пустое значение с чем либо? ну а вдруг, не?

Приведите пример пожалуйста как сделать. А то добавляю в ТЗ. А в неё добавляются пустые строки ) ТЗ.Номенклатура = нСпр - так нельзя ?) Хотя написано, что можно писать любой тип (ТипЗначенияСтр(нСпр) "Справочник")

вот и выросло поколение не понимающее клюшки ))) ЗЫ достаточно перепозиционировать выборку

Пробовал выборку делать без иерархии, как в показано?

в этом случае нСпр2 = СоздатьОбъект("Справочник.Номенклатура"); .

Спасибо. Да так заработало. Только долго чёт ) Правда позиций 1000+ секунд 30. )

Запрос по справочнику с условием потом ТЗЗЗ=создатьобъект("ТаблицаЗначений"); Потом перебираешь ТЗ , быстрее будет

+ а если еще перед выборкой ТЗ поставить начатьтранзакцию а после зафиксироватьтранзакцию ))) еще быстрее

И ..быстрее будет, открыть для себя Uchoice или update

в - написано "в этом случае" (с) про без ТЗ было уже описано

Если Найти(СокрЛП(нСпр.Наименование), СокрЛП(Искомый)) > 0 Тогда строка из не смутила ? )

Чем она кого - то должна смутить ?) Она говорит об моём дилетантском уровне ?)

нет, ючойз может искать по наименованию и поиск по подстроке тоже есть

ну для этого как минимум нужно знать, что они есть . ))) по мне так порой проще за 5-ть минут написать - чем копаться в сборнике обработок ))) не в этом дело - не все универсальные обработки - сильно универсальны .

Читайте также: