:: Вопросы по 1С
Символьное значение: с кавычками и без
ama68

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Разбираю конфу 8.1

Есть справочник "Организации". В нем 1 запись

Есть регистр "НастройкиПользователя".

В модуле Организации.Форма.ФормаСписка идет проверка, является ли организация основной. Данные берутся из РегистрыСведений.НастройкиПользователей.

Проблема в следующем:
ДанныеСтроки.Ссылка = Имя Организации, а
глЗначениеПеременной("ОсновнаяОрганизация") = "Имя Организации".

Естественно, что условие
Цитата:
Если ЗначениеЗаполнено(ДанныеСтроки.Ссылка)
И глЗначениеПеременной("ОсновнаяОрганизация") = ДанныеСтроки.Ссылка
не выполнется!

В чем дело?


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: Символьное значение: с кавычками и без
Сергей_Л

Сообщений: 20257
Откуда: Киров(Вятка)
Дата регистрации: 07.02.2005
Привет, Михаил!
Если честно, чет я не совсем понял твоего вопроса. Символьное значение переменной может быть ТОЛЬКО с кавычками, без кавычек- это значит сама переменная. Но в имени переменной не может быть пробелов, т.е. на выражение
ДанныеСтроки.Ссылка = Имя Организации
конфигуратор должен сругнуться, и вообще, непонятно, как ссылке можно что то присвоить, скорее
ИмяОрганизации=ДанныеСтроки.Ссылка
Ratings: 0 negative/0 positive
Re: Символьное значение: с кавычками и без
ama68

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Под "Имя Организации" я подразумевал обычное название.

В моем случае: СОФ-Т, ООО

Далее.

Я не говорил о присваивании (ДанныеСтроки.Ссылка = Имя Организации). Я имел ввиду значения, которые мне показывает отладчик.

В моем случае,
глЗначениеПеременной("ОсновнаяОрганизация") имеет значение "СОФ-Т, ООО" и тип Строка ДанныеСтроки.Ссылка имеет значение СОФ-Т, ООО и тип "СправочникСсылка.Организации"

Но, почему-то, условие

Цитата:
Если ЗначениеЗаполнено(ДанныеСтроки.Ссылка)
И глЗначениеПеременной("ОсновнаяОрганизация") = ДанныеСтроки.Ссылка

не срабатывает.


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: Символьное значение: с кавычками и без
Сергей_Л

Сообщений: 20257
Откуда: Киров(Вятка)
Дата регистрации: 07.02.2005
Ну, еще при сравнении двух строковых значений, для пущей гарантии совпадения желательно убрать пробелы впереди и сзади:
СокрЛП(<Строка>)
Ratings: 0 negative/0 positive
Re: Символьное значение: с кавычками и без
ama68

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Там основная проблема вот в чем:

Открываю справочник "Организации".
Ввожу новую (единственную) с именем СОФ-Т, ООО.
В списке "Организации" Нажимаю кнопку "Установить основной". Строка с записью в списке устанавливается жирным шрифтом. Соответственно, в Регистре сведений "Настройки пользователей" настройка "Основная организация" принимает значение СОФ-Т, ООО.

Открываю снова справочник "Организации", но эта запись уже не отмечена жирным шрифтом, т.е. эта организация (СОФ-Т, ООО) как бы уже не является основной.

Начинаю копаться в отладчике. Выясняю, что условие

Если ЗначениеЗаполнено(ДанныеСтроки.Ссылка)
И глЗначениеПеременной("ОсновнаяОрганизация") = ДанныеСтроки.Ссылка

не соблюдается. Почему?


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: Символьное значение: с кавычками и без
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Миша - не знаю че у тея за лихая такая конфа - но у меня ни 8.0 ни 8.1 нету в "СПИСКЕ ОРГАНИЗЦАИЙ" сделать "ОСНОВНОЙ" это ваще=то делаетвся в настроуке юзверей через пункт меню "Сервис" там если нудно и долго копатьвся в дереве настроек можно найти "Основаня организация" но она будет дейстивительна только для юзверя которому она проставлена, именно по такому куску кода который ты показал.
И еще запомни что если в отладчике ты видищь "Строка.Организация.Ссылка" наименование огранизации - то не факт что
Строка.Организация.Ссылка="Мои рога и копыта" это будет правильно - ССЫЛКА - это именно ССЫЛКА на объект - пусть то будет справочник, документ, перечисление или еще что - значение ты можешь присвоить только НАИМЕНОВАНИЮ в твоем случае и не ссылке, а ОБЪЕКТУ !
типа
Объект=Строка.Огранизация.Ссылка.ПолучитьОбъект();
Объект.Наименование="Мои Рога и Копыта";
Объект.Записать();

А как я понялне видя твоей конфы, а
глЗначениеПеременной("ОсновнаяОрганизация")
Это обращение к перемной среды окружения юзверя - так что "Основную Организацию" надо заполнять в настройках юзверя
Хотя в 1с коде конфы стока ляпов и столько откровенно хренового кода что у меня уже все матерные слова кончились


------------------
Часто бывает так, что есть над чем задуматься, а нечем.




Исправлено 1 раз(а). Последнее : piva, 26.03.09 20:26
Ratings: 0 negative/0 positive
Re: Символьное значение: с кавычками и без
ama68

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Я проблему нашел. Вернее сказать нашел то место, где эта проблема возникает.

Все дело действительно в "НастройкиПользователей" в тие настройки "ОсновнаяОрганизация".

Теперь по-порядку.

В конфе Справочники.Организации.Формы.ФормыСписка есть такая кнопка "Установить основной". При ее нажатии как раз прописывается в регистр сведений "Настройки пользователя" с помощью такой процедуры:

Цитата:
Процедура ДействияФормыУстановитьОсновной(Кнопка)

Набор = РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей();

Набор.Отбор.Пользователь.Использование = Истина;
Набор.Отбор.Пользователь.Значение = глЗначениеПеременной("глТекущийПользователь");
Набор.Отбор.Настройка.Использование = Истина;
Набор.Отбор.Настройка.Значение = ПланыВидовХарактеристик.НастройкиПользователей.ОсновнаяОрганизация;

Запись = Набор.Добавить();

Запись.Пользователь = глЗначениеПеременной("глТекущийПользователь");
Запись.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.ОсновнаяОрганизация;
Запись.Значение = ЭлементыФормы.СправочникСписок.ТекущиеДанные.Ссылка;

Набор.Записать();

Набор = РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей();

Набор.Отбор.Пользователь.Использование = Истина;
Набор.Отбор.Пользователь.Значение = глЗначениеПеременной("глТекущийПользователь");
Набор.Отбор.Настройка.Использование = Истина;
Набор.Отбор.Настройка.Значение = ПланыВидовХарактеристик.НастройкиПользователей.ОсновноеПодразделениеОрганизации;

Запись = Набор.Добавить();

Запись.Пользователь = глЗначениеПеременной("глТекущийПользователь");
Запись.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.ОсновноеПодразделениеОрганизации;
Запись.Значение = Неопределено;

Набор.Записать();

глЗначениеПеременнойУстановить("ОсновнаяОрганизация", ЭлементыФормы.СправочникСписок.ТекущиеДанные.Ссылка, Истина);

Обновить();

КонецПроцедуры // ДействияФормыУстановитьОсновной()

Но дело в том, что тип настройки "ОсновнаяОрганизация" у меня прописан как СправочникСсылка.Организации, а эта зараза почему-то записывает в эту настройку значение типа строка.

Почему, не могу понять.


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: Символьное значение: с кавычками и без
kynabo
Автор

Сообщений: 208
Дата регистрации: 28.02.2009
С 8 знакома мало, а в 7, я бы искала
константы, определяющие основные характеристики организации, об этом говорит
<<глЗначениеПеременной("ОсновнаяОрганизация") = "Имя Организации" и дальше по коду >>
т.е. в 7 это был бы набор констант , в которые записано на начальной стадии не название фирмы, а подсказка - "имя организации", есно отбирать то чего далее, если нет название фирмы. Но в 7 точно, а в 8, если не нашли причины, посмотрите. Они обычно в том же меню где справочники, но отдельно, а вообще то по смыслу задачи их могут поместить и в сервис и еще куда.
Где то самое начало задание данных.
Еще момент. если при установке, какая то часть данных загружалась не в том порядке, то заменяються ссылки на данные. к примеру, Вы загрузили справочник, а у него какой либо реквизит это справочник (реквизит детали - справочник.детали),так вот если справочник детали не загружен, то реквизит детали станет строковым или неопределенным и надо перезагрузить все или в правильном порядке или ручками реквизиту детали сопоставить справочник детали.



Исправлено 1 раз(а). Последнее : kynabo, 30.03.09 09:36
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 3 (Гостей: 3)

© 2000-2024 Fox Club 
Яндекс.Метрика