Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Почему регистр сведений никак не хочет записывать булевое занчение          
Gigi Подменю пользователя
сообщение 21.03.18, 11:41
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Всем привет!
Короче проблема простая связанная с записями в рег сведений
Вот процедура в общем модуле... которая вроде работает:
Процедура РегистрСведенийЗаписьПоСтруктуре(РегистрСведенийИмя,СтруктураИзмеренияЗначения,СтруктураРесурсыЗначения)Экспорт
//=======================================================
Менеджер = РегистрыСведений[РегистрСведенийИмя].СоздатьМенеджерЗаписи();
НаборЗаписей = РегистрыСведений[РегистрСведенийИмя].СоздатьНаборЗаписей();
//=======================================================
Для Каждого Элемент Из СтруктураИзмеренияЗначения Цикл
ИзмерениеИмя=Элемент.Ключ;
ИзмерениеЗначение=Элемент.Значение;
Менеджер[ИзмерениеИмя]=ИзмерениеЗначение;
КонецЦикла;
Менеджер.Прочитать();
//=======================================================
Для Каждого ЭлементРесурс Из СтруктураРесурсыЗначения Цикл
РесурсИмя=ЭлементРесурс.Ключ;
РесурсЗначение=ЭлементРесурс.Значение;
Если Менеджер.Выбран()=Ложь Тогда
    Для Каждого ЭлементИзмер Из СтруктураИзмеренияЗначения Цикл
    ИзмерениеИмя=ЭлементИзмер.Ключ;
    ИзмерениеЗначение=ЭлементИзмер.Значение;
    //Сообщить("ЗАПИСЬ НАЙДЕНА - "+Менеджер.Выбран()+Символы.ПС+"ИЗМЕРЕНИЕ ИМЯ - "+ИзмерениеИмя+Символы.ПС+"ИЗМЕРЕНИЕ ЗНАЧ - "+ИзмерениеЗначение);
    Менеджер[ИзмерениеИмя]=ИзмерениеЗначение;
    Если РесурсИмя=Неопределено Тогда Перейти ~ЛинияДалее1; КонецЕсли;
    Менеджер[РесурсИмя]=РесурсЗначение;
    КонецЦикла;        
    Менеджер.Записать();
    ~ЛинияДалее1:;
Иначе
    Для Каждого ЭлементИзмер Из СтруктураИзмеренияЗначения Цикл
    ИзмерениеИмя=ЭлементИзмер.Ключ;
    ИзмерениеЗначение=ЭлементИзмер.Значение;
    //Сообщить("ЗАПИСЬ НАЙДЕНА - "+Менеджер.Выбран()+Символы.ПС+"ИЗМЕРЕНИЕ ИМЯ - "+ИзмерениеИмя+Символы.ПС+"ИЗМЕРЕНИЕ ЗНАЧ - "+ИзмерениеЗначение);
    НаборЗаписей.Отбор[ИзмерениеИмя].Установить(ИзмерениеЗначение);
    КонецЦикла;
    НаборЗаписей.Прочитать();
    //-----------------------------------------------------
    Если РесурсИмя=Неопределено Тогда Перейти ~ЛинияДалее2; КонецЕсли;
        Для каждого Строка из НаборЗаписей Цикл
        Строка[РесурсИмя]=РесурсЗначение;    
        КонецЦикла;
    //----------------------------------------------------
    НаборЗаписей.Записать();
~ЛинияДалее2:;
КонецЕсли;
КонецЦикла;
//=======================================================
КонецПроцедуры

А вот код использования в модуле объекта:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
ДокументСуществует="Документ_"+Строка(Месяц);
СтруктураИзмеренияЗначения=Новый Структура("СправочникЗначениеСсылки,Год",ТОЧКАэлсеть,Год);
СтруктураРесурсыЗначения=Новый Структура(Строка(Месяц),ДокументСуществует,Расход,Истина);
FxSub_РегистрСведений.РегистрСведенийЗаписьПоСтруктуре("ДанныеОтчетногоГода",СтруктураИзмеренияЗначения,СтруктураРесурсыЗначения);
КонецПроцедуры

Вопрос в чем ...
Любые записи нормально регистрируются, но это любые значения, кроме булевых.
Когда создаешь в реге сведений реквизит с будевым типом то почему то значение не записывается.
По крайней мере с помощью выше указанной процедуры.
Ну в данном случае такой реквизит обозначен переменной: "ДокументСуществует"
Никак не записывается булевое значение.
Почему?
Буду признателен!

logist Подменю пользователя
сообщение 21.03.18, 12:13
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Gigi @ 21.03.18, 11:41) *
Перейти ~ЛинияДалее1;



Если вы хотели написать какую-то универсальную процедуру записи в РС - то вы написали какую-то х...ню. Вообще не понятно в чем смысл, сделайте запись в регистр так как это принято, и будет всё работать.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: andr_andrey, ivan.brusniak,

Gigi Подменю пользователя
сообщение 21.03.18, 13:36
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Цитата(logist @ 21.03.18, 12:13) *
написали какую-то х...ню

Какую х..ню... Это так в голове у тех которые не понимают в чем смысл подобных процедур.
Так что ху...я у вас в голове уважаемые... это я щас не лично кого то а тех которые не понимают.
Цитата(logist @ 21.03.18, 12:13) *
сделайте запись в регистр так как это принято, и будет всё работать.

Да прям ... мне больше делать нечего при каждой записи в каждом модуле писать ОДНО И ТО ЖЕ.
И так уже достал весь этот гем. постоянно писать .. так что если о ху..не то вся система 1С тогда одна спольная ху..ня.
И построена вниз головой .. просто нет другого а то....
Да сама система это и есть ху-я ... Там много че сделано так что правое ухо левой рукой .. и многое можно было сделать совсем иначе.
И тогда не приходовалось бы столько писать писать ... без конца края ... и самому облегчать себе жизнь... если сами разработчики об этом не позаботились .
А что касается этой функции, не ху-ня а ОНА РАБОТАЕТ! И нормально.
Просто я только что выяснил, что дело в коде объекта.
Ну на пример я для теста линию:
СтруктураРесурсыЗначения=Новый Структура(Строка(Месяц),ДокументСуществует,Расход,Истина);

Сменил на эту
СтруктураРесурсыЗначения=Новый Структура("январь,Документ_январь",Расход,Истина);

Это просто для теста.
И теперь нормально записала.
Поэтому я просил О ПОМОЩИ!
ТОЛЬКО ОБ ЭТОМ!
А ху-ня не ху-ня .... и эта фото которая мне до лампочки ... заверните все это в рулон и пихните себе в одно место.
Я о помощи просил.
А ВАШЕ МНЕНИЕ мне извините но до .... так что придержите пожалуйста его при себе.
Короче ... опять пошли не нужные речи.
Поэтому опять просьба просто исправить... т.е. причина в том, что когда указываешь имя ресурса в таком виде:
ДокументСуществует="Документ_"+Строка(Месяц);

Не записывает...
Записывает только тогда когда указываешь константу значения, а нужно имя ресурса запеременить и так записать. И облегчить жизнь.
Переменная вроде на то и создана что бы не повторять одно и тоже
Вот что я просил...

Gigi @ Сегодня, 12:40 * ,
~ЛинияДалее1:;

А с этим ... ну ладно .. согласен ... не уместна ... это просто вначале по другому накидал а эту линию стереть забыл ... ладно это ерунда.
Ладно как хотите ...
Просто вопрос уже в том как правильно запеременить имя ресурса для записи по структуре.
На пример ресуры такие ... Документ_январь, Документ_ ферваль и т.д.
А в объекте есть реквизит перечисления: с выбором месяцев.
Соответственно нужно что бы ресурс записи зависел от выбранного месяца..
Поэтому переменная имени ресурса будет: "Документ_"+Строка(Месяц)
Т.е. как правильнее обозначить переменную как ключ структуры для записи.
Вот уже в чем вопрос...
А за выше написанное ... не в обиду... просто это всего лишь код.. и не более... не со скульптурой ведь работаем а с машиной



Gigi @ Сегодня, 13:16 * ,
Ладно ... сам разобрался..
Вот так записывает..
ДокументСуществует="Документ_"+Строка(Месяц);
СтруктураРесурсыЗначения=Новый Структура();
СтруктураРесурсыЗначения.Вставить(Строка(Месяц),Расход);
СтруктураРесурсыЗначения.Вставить(ДокументСуществует,Истина);

Так что все работает.
Но все равно спасибо...
Ладно простите извините но сам разобрался...
Пока

Нонна Подменю пользователя
сообщение 21.03.18, 13:48
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Харьков
Спасибо сказали: 50 раз
Рейтинг: 0

Gigi @ Сегодня, 13:36 * ,
Не расстраивайтесь, для этого супермодератора, такое общение это норма.

sava1 Подменю пользователя
сообщение 21.03.18, 14:23
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(Нонна @ 21.03.18, 13:48) *
для этого супермодератора, такое общение это норма.


Не надо на модератора пенять...
Я бы тоже так написал.

На первых парах (сейчас может и уроках) по Бейсику !!! препод рассказал, что поддерживаются переходы пометкам
и сразу-же попросил об этом забыть и никогда не применять.
Вы слышали такое выражение "спагетти" относительно кода ? пробовали "такое" прочитать ?

Спасибо сказали: ivan.brusniak,

Нонна Подменю пользователя
сообщение 21.03.18, 14:40
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Харьков
Спасибо сказали: 50 раз
Рейтинг: 0

sava1 @ Сегодня, 14:23 * ,
Может быть переход по меткам это и не очень хорошо, но этого никто не отменял. Здесь идет речь о некорректном ответе.

sava1 Подменю пользователя
сообщение 21.03.18, 15:08
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(logist @ 21.03.18, 12:13) *
делайте запись в регистр так как это принято, и будет всё работать


Это некорректный ответ ?

Vofka Подменю пользователя
сообщение 21.03.18, 15:54
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата(Нонна @ 21.03.18, 14:40) *
Может быть переход по меткам это и не очень хорошо, но этого никто не отменял. Здесь идет речь о некорректном ответе.

Тут 2 момента есть.

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

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

Второй момент. logist, я вас прошу удерживаться от фраз вроде
Цитата
вы написали какую-то х...ню

То, что это на самом деле так, я не спорю. Но я очень не хочу, что бы общение у нас на форуме скатилось до уровня миста.ру. Поэтому большая просьба не использовать в ответах нецензурную лексику или переход на личности если есть подозрение, что это может кого-то из участников темы обидеть.

Спасибо сказали: Alegzander,

Gigi Подменю пользователя
сообщение 21.03.18, 16:43
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Vofka @ Сегодня, 15:54 * ,
Цитата(Vofka @ 21.03.18, 15:54) *
То, что это на самом деле так, я не спорю.

Ну ладно извините ... опять погорячился ...
а по поводу на самом деле ... я просто одурею ... ЭТО ПРОСТО КОД smile.gifsmile.gif Ведь это не лепить скульптуру ... для написания которого вдохновение точно не нужно! smile.gifsmile.gif
Поэтому мне кажется, что тут иногда просто любят просто кидаться критикой и это ради того что бы просто обхайть, а совсем не по делу.
То что я говорю про систему это ПО ДЕЛУ... поверьте ... и это не тараканы какие то ... а ПО ДЕЛУ.
Могу конкретные примеры привести ... того как сделано в системе и как можно было сделать по другому.
И это для ОДНОЙ ЦЕЛИ!
ОБЛЕГЧИТЬ ЖИЗНЬ! всего лишь.
И это не только юзеру но и программисту.
Поэтому процедурка ставит одну единственную туже самую цель.
Следовательно зачем нужно вообще писать всю эту фигную для записи в рег сведений?
Эти строки ...менеджер записи ... прочитать ... отобрать .... и прочее.
Не проще ли просто указал имя рега сведений;измерения;ресурсы и все.. вот все что нужно ... а то достало уже... менеджер ж....пенеджер и прочее smile.gifsmile.gif
Что тут такого?
Когда вы говорите что ерунда вы хоть понимаете что есть цель а есть способ реализации. И что если цель невыполнима то это проблемы разработчиков...
Короче ладно ... не буду спорить ... оказывается сделать так как проще это ерунда... надо же..
Так что воздержусь дальше...

andr_andrey Подменю пользователя
сообщение 21.03.18, 17:01
Сообщение #10

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Спасибо сказали: 166 раз
Рейтинг: 130.8

logist @ Сегодня, 12:13 * ,
Автор имеет навык веселить, и я подозреваю, что псевдоним он специально выбрал совпадающий с gigi.gif

Сообщение отредактировал andr_andrey - 21.03.18, 17:01


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

Gigi Подменю пользователя
сообщение 21.03.18, 17:05
Сообщение #11

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

andr_andrey @ Сегодня, 16:45 * ,
Цитата(andr_andrey @ 21.03.18, 16:45) *
совпадающий с

Не буду отвечать на это ... Что бы уже действительно не стало "весело" smile.gifsmile.gif
Ладно... говорите че хотите ...
Пока

andr_andrey Подменю пользователя
сообщение 21.03.18, 17:10
Сообщение #12

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Спасибо сказали: 166 раз
Рейтинг: 130.8

Цитата(Gigi @ 21.03.18, 16:43) *
Следовательно зачем нужно вообще писать всю эту фигную для записи в рег сведений?
Эти строки ...менеджер записи ... прочитать ... отобрать .... и прочее.
Не проще ли просто указал имя рега сведений;измерения;ресурсы и все.. вот все что нужно ... а то достало уже... менеджер ж....пенеджер и прочее smile.gifsmile.gif
Что тут такого?

Вы подумали, как платформа скрывает от вас внутреннее представление всех этих "регистров и прочее" для различных вариантов серверов и файлового хранения?
Не надо думать, что создатели платформы дураки, или что они хотели всем умышленно усложнить жизнь.

Gigi @ Сегодня, 17:05 * ,
Цитата(Gigi @ 21.03.18, 17:05) *
Не буду отвечать на это ...

Без обид, просто иконка
:gigi:
даёт такую рожицу gigi.gif


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

Vofka Подменю пользователя
сообщение 21.03.18, 17:13
Сообщение #13

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Gigi, при использовании любого инструмента, нужно, во-первых, разобраться как он работает, во-вторых, нужно принять, что он работает как работает и либо подстроить свое мышление под это либо отказаться от использования. Но вы выбрали путь


Gigi Подменю пользователя
сообщение 21.03.18, 17:24
Сообщение #14

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

andr_andrey @ Сегодня, 17:08 * ,
Нет я не говорю что платформа не та... она всем хороша... функциональна удобна ... очень все хорошо все построено.
И конечно понятное дело над ее разработкой работали очень грамотные программисты и не только ... но и очень идейные ... это понятно.
Но просто в кое каких местах мне кажется можно было сделать иначе. И дело не в вопросе данной темы, в кое каких мамонтах в целом.
Не знаю так думается ... так что любое решение должно иметь свои логические аргументы. Аргументы главного... ОПТИМАЛЬНОСТИ!
Поэтому я думаю дело тут в этапе релиза. В самом начале ведь платформа была совсем голая. Потом ведь пошли навороты.
Так что думаю в дальнейшем будет лучше.
А так я не в целом говорю ...
В целом среда нормальная!
Ладно! Всем спасибо... извинения ... и пока!

Цитата(andr_andrey @ 21.03.18, 17:10) *
даёт такую рожицу gigi.gif

Это совпадение ... всего лишь smile.gifsmile.gif Пока

logist Подменю пользователя
сообщение 21.03.18, 17:45
Сообщение #15

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Vofka @ 21.03.18, 15:54) *
Поэтому большая просьба не использовать в ответах нецензурную лексику

Где там нецензурная лексика? То, что кто-то там дофантазирует что было за точками - это его фантазия. "Херня" в принципе не является нецензурным словом, поскольку считается, что фразеологизм происходит от латыни hernia, медицинского термина.

Цитата(Vofka @ 21.03.18, 15:54) *
или переход на личности если есть подозрение, что это может кого-то из участников темы обидеть.

Такое отношение к разработке на 1С обижает меня, это не считается, что это задевает мой чувства? Я, быть может, испытываю моральные страдания... smile.gif


Цитата(Gigi @ 21.03.18, 17:24) *
Аргументы главного... ОПТИМАЛЬНОСТИ!

Оптимальность это что-то типа такого:
Процедура ЗаписатьРегистрСведений(ИмяРегистра, МассивЗаписей, Перезаписывать = Истина) Экспорт
    // МассивЗаписей - массиив который состоит из структур, ключ структуры соответствует измерению, ресурсу или реквизиту регистра
    // Делить измерения, ресурсы и реквизиты на отдельные структуры не имеет смысла т.к. их имена уникальны
    ЗаписьРегистра = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей();
    Для Каждого Запись Из МассивЗаписей Цикл
        НоваяЗапись = ЗаписьРегистра.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяЗапись, Запись);
    КонецЦикла;
    ЗаписьРегистра.Записать(Перезаписывать);
КонецПроцедуры

а то, что вы там написали, это "методом тыка придумал велосипед, с квадратными колесами"


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Gigi Подменю пользователя
сообщение 23.03.18, 9:58
Сообщение #16

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

logist @ 21.03.18, 17:45 * ,
Вот это другое дело.
С этого нужно было и начинать smile.gifsmile.gif
А квадратные колоса обычно не ездят. И в форме квадрат это уже не колоса.... Другое дело что колоса могут быть разные.... из разных материалов.
И то что получились не колоса со спицами а колоса деревянные это опять по причине того, что слишком сильно поверил тому, что говориться в учебниках и строго следовал стандарту.
А цель оказывается можно было решить гораздо проще.
Дааа .... Вот что бывает когда тупо следуешь стандарту. Как раз предложенный вариант опять это и подтверждает
Так что спасибо за подсказку ... уже не буду делать то, что навязывается стандартом. А искать всегда надо более разумный простой и оптимальный путь. Правильно.
Без этого гема ...
Менеджер = РегистрыСведений[РегистрСведенийИмя].СоздатьМенеджерЗаписи();
НаборЗаписей = РегистрыСведений[РегистрСведенийИмя].СоздатьНаборЗаписей();  
Менеджер.Прочитать();
//..... и т.д.

Просто .... имя регистра.... имена измерений.... имена ресурсов или реквизитов.... и ВСЕ!!! Больше ничего другого не надо! Что бы постоянно в каждом конкретном случае не писать: "Менеджер" , "НаборЗаписей" и прочую хрень smile.gifsmile.gif
Так что спасибо за то что своим примером опять подтвердили как глупо буквально следовать тому что в учебниках пишут.
Ладно! Я приношу извинения за резкие слова...
Спасибо!

Gigi @ Сегодня, 9:27 * ,
Колоса вместо Колеса .... ладно опечатки
Самое смешное что на этом сайте после обновления страницы исправить почему то невозможно
Ладно .. пока

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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