Однако ... ну опять вижу чего то не хватает ... вечно что то не хватает ...и опять какой то ерунды ... Всем хорошая платформа, но в кое каких тонких вопросах опять малые не доработки.
Поэтому никто не подскажет как сменить на Истину то, что по умолчанию Ложь. Имею ввиду булевый тип константы. Дело в том, что когда создаешь булевый реквизит объекта, там есть опция "ЗначениеЗаполнения". Обычно по умолчанию всегда стоит Ложь. И поэтому есть возможность сменить на Истину. А вот когда создаешь тот же булевый тип но константу, такая опция как "ЗначениеЗаполнения", и вовсе отсутствует. ПОЧЕМУ? По крайней мере че то ее не нахожу. А нужно что бы значение созданной булевой константы было не Ложь, а ИСТИНА! Никто не подскажет пути как это сделать? Буду опять признателен!
Gigi @ Сегодня, 12:45
, Короче ... понятно ... такой опции просто нет... Скорее всего.
А на этом сайте мне еще говорили что просто идеальная среда разработки. Согласен что очень удобная и функциональная... но с тем что идеальная НЕТ. Это далеко не так. И это лишь малая часть многих не больших но не доработок. И это не удивительно.... идеал может быть только у самого Бога ... и точно не в том, что от рук человека. Поэтому опять придется делать двойную работу. И во всех процедурах в соответствующих местах кода менять Истину на Ложь или наоборот. И приспосабливаться под возможности системы 1С.
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Vladal @ Вчера, 16:41
, Ну конечно ... "создайте" ... "доработайте" А в опциях просто сменить значение заполнения константы по умолчанию без "создайте/доработайте" это конечно невозможно.
У меня уже глаза квадратные из-за этих "создайте/доработайте"
Ладно! Так и быть .... опять буду "создавать" и "дорабатывать" )))) Без конца края. Спасибо Пока!
Группа: Местный
Сообщений: 631
Спасибо сказали: 168 раз
Рейтинг: 133.4
Цитата(Gigi @ 27.11.18, 8:19)
Так и быть .... опять буду "создавать" и "дорабатывать" )))) Без конца края.
Извините, я наверное пропустил, а в каком инструменте/языке не надо ничего "создавать/дорабатывать"? Просто запамятовал, с какой супер-технологии вы снизошли на 1С?
#define private public enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
andr_andrey @ Сегодня, 10:29
,
Цитата(andr_andrey @ 27.11.18, 10:29)
Просто запамятовал, с какой супер-технологии вы снизошли на 1С?
Не с какой ...
просто длина одного шага вперед должна быть 100 см, а не 95. И раз шаг был сделан то наверно, трудно было добавить недостающие 5 см. Поэтому эти 5 см приходится "создавать/дорабатывать" самому раз разработчики поленились. Хотя может я шас говорю как избалованный парень. Который никогда не писал ну на пример на Си... и не знает какой это ужас ... когда все с нуля. Но все таки.
А так в остальном среда разработки всем хороша.. согласен. Просто кое где не до конца удобна. Ладно... я думаю в следующих релизах добавят эти не достающие сантиметры. А пока наверно чем богаты тем и рады. Пока!
Группа: Местный
Сообщений: 372
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 66.3
Цитата(Gigi @ 27.11.18, 8:19)
Ну конечно ... "создайте" ... "доработайте" А в опциях просто сменить значение заполнения константы по умолчанию без "создайте/доработайте" это конечно невозможно.
Если Вы разработчик в 1С - есть ресурсы для обучения или тут же на форуме можно обсудить. Если Вы - пользователь 1С, хоть и продвинутый, то наверно это создает сложности.
Потом: константа и её значения находятся в области данных информационной базы, поэтому в конфигураторе нельзя задать значение заполнения. Но если бы это была ссылка на объект с предопределенными данными - то да, в значении заполнения можно указать этот предопределенный элемент.
Цитата(Vofka @ 27.11.18, 16:36)
Зачем вы так жестоко с человеком?
Я не хотел.
Цитата(Gigi @ 27.11.18, 10:09)
просто длина одного шага вперед должна быть 100 см, а не 95.
Либо нестандартизированная линейка. Как, например, дешевая китайская рулетка, шкала которой не совпадает с эталоном. Может, Вы ожидаете неоправданно большего от системы, которая рассчитана под другие задачи. Так что разработчики 1С сделали километр из 1000 эталонных метров, а Вы ожидаете от этого километра 1024 "китайских" метра. Увы.
Цитата(Gigi @ 25.11.18, 12:43)
Дело в том, что когда создаешь булевый реквизит объекта, там есть опция "ЗначениеЗаполнения". Обычно по умолчанию всегда стоит Ложь. И поэтому есть возможность сменить на Истину. А вот когда создаешь тот же булевый тип но константу, такая опция как "ЗначениеЗаполнения", и вовсе отсутствует. ПОЧЕМУ? По крайней мере че то ее не нахожу. А нужно что бы значение созданной булевой константы было не Ложь, а ИСТИНА! Никто не подскажет пути как это сделать? Буду опять признателен!
Итак, в форме элемента/группы справочника в обработчике ПриОткрытии можно добавить проверку на то, что это новый объект и заполнять нужный реквизит значением из константы.
Вот пример:
Процедура ПриОткрытии()
Если ЭтоНовый() Тогда ЗначениеРеквизита = Константы.БулеваяКонстанта.Получить(); НовыйРеквизит = ЗначениеРеквизита; КонецЕсли;
КонецПроцедуры
Но это надо дописывать ручками. А вот чтобы это прописать в свойства реквизита, мне пока неизвестно.
Цитата(Gigi @ 27.11.18, 10:09)
Просто кое где не до конца удобна.
Зато не надо в notepad.exe или nano писать текст программы и компилировать его из командной строки )))
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Цитата(Vofka @ 27.11.18, 17:36)
Зачем вы так жестоко с человеком?
Да ничего страшного ..переживу... куда денусь... пусть даже с трудом
Цитата(Vladal @ 27.11.18, 18:29)
Либо нестандартизированная линейка. Как, например, дешевая китайская рулетка, шкала которой не совпадает с эталоном. Может, Вы ожидаете неоправданно большего от системы, которая рассчитана под другие задачи. Так что разработчики 1С сделали километр из 1000 эталонных метров, а Вы ожидаете от этого километра 1024 "китайских" метра. Увы.
Ну не знаю господа... с одной стороны логично, но с другой стороны усматриваю подвох в сказанном. Имеющий цель оправдать то, что разработчики не до конца сделали. И прав или ошибаюсь в этом точно знать не могу. Ибо если честно мало знаком с архитектурой ... Пока все внимание акцентирую только на кодинг. Что иногда просто выматывает. и просто было бы не плохо если почаще обходилось бы без единой строки. Но раз это не вписывается то ладно буду верить тому, что сказано. Хотя бы потому, что у самого опыт не большой. Так что, по поводу ..
Цитата(Vladal @ 27.11.18, 18:29)
Потом: константа и её значения находятся в области данных информационной базы, поэтому в конфигураторе нельзя задать значение заполнения. Но если бы это была ссылка на объект с предопределенными данными - то да, в значении заполнения можно указать этот предопределенный элемент.
А константа это не элемент конфигурации? Так же как на пример перечисление? Я понимаю так.... Все то, что может создать пользователь в основном это область инфо. базы. А все что не может ... на пример перечисление, константы .. это же область конфигурации? Или не так? Хотя плаваю в этом если честно. Поэтому и тут ... ладно .... доверюсь сказанному выше. А в остальном по поводу заполнения по умолчанию ... для чего нужно было ... Вот для чего
Процедура ОБСЛУЖИВАНИЕ(Отказ) //============================== знОбслуживание=Обслуживание_ИстинаЛожь(); Если знОбслуживание=Ложь Тогда Текст="ОБСЛУЖИВАНИЕ РАЗРАБОТКИ ВРЕМЕННО ОТКЛЮЧЕНО!"+Символы.ПС+ "ИДЕТ ПРОЦЕСС ОБНОВЛЕНИЯ КОНФИГУРАЦИИ!"; Предупреждение(Текст); Отказ=Истина; КонецЕсли; //============================== КонецПроцедуры
Функция Обслуживание_ИстинаЛожь() ТекущийПользователь=ПользователиИнформационнойБазы.ТекущийПользователь().Имя; Если ТекущийПользователь="Программер" Тогда Возврат Истина; Иначе Возврат Константы["Обслуживание"].Получить(); КонецЕсли; КонецФункции
Так написал в модуле управляемого приложения. Думаю теперь ясно почему. Просто это еще урезанный вариант... у меня там еще другие строки. Но суть в том, что если константа "Обслуживание" имеет значение Истина тогда база грузиться, а если ложь то нет. Просто резоннее было бы если константа для этой цели по умолчанию имела бы значение Истина. В противном случае придется в других процедурах везде менять. Что думаю и придется делать. Ладно .. это так ..для ясного понимания негодования... спасибо
Gigi @ Сегодня, 21:02
, P.S. Да еще .. Конечно разумнее было бы создать константу с именем не "Обслуживание", а "Отключение" .. это было бы уместнее к значению по умолчанию. Но я уже сделал и когда делал не знал, что у константы нет опции выбора значения по умолчанию. А уже после и не охота было переделывать
Группа: Местный
Сообщений: 372
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 66.3
Цитата(Gigi @ 27.11.18, 20:29)
А константа это не элемент конфигурации?
Элемент. А вот её значение - в области пользовательских данных, а не конфигуратора. Сейчас значение одно, через час другое. А если это значение перечисления, предопределенный элемент справочника, плана счетов или ПВХ, то к нему есть доступ из свойств автозаполнения.
Цитата(Gigi @ 27.11.18, 20:29)
Пока все внимание акцентирую только на кодинг.
Да. Понимание архитектуры 1С 8 облегчит работу.
Цитата(Gigi @ 27.11.18, 20:29)
А константа это не элемент конфигурации? Так же как на пример перечисление?
Константа и перечисления - объекты конфигурации. Только значение перечисления задано в конфигураторе, а значение константы задано в пользовательском режиме. Это если "на пальцах".
Цитата(Gigi @ 27.11.18, 20:29)
Но суть в том, что если константа "Обслуживание" имеет значение Истина тогда база грузиться, а если ложь то нет. ... Конечно разумнее было бы создать константу с именем не "Обслуживание", а "Отключение" .. это было бы уместнее к значению по умолчанию.
Да. Это хорошо, что пришли к такому выводу.
Цитата(Gigi @ 27.11.18, 20:29)
В противном случае придется в других процедурах везде менять. Что думаю и придется делать. Ладно .. это так ..для ясного понимания негодования... спасибо
Да, такое тоже бывает, когда надо переписывать код на оптимальный.
Суть негодования понятна. Особенно, когда "бросили на амбразуру" и плыви, как хочешь.
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Vladal @ Вчера, 0:51
, Тема закрыта .. но это так ... ради прикола... Полный вариант решения... с учетом значения заполнения по умолчанию. Пришлось добавить константу "отключение", а не менять константу "Обслуживание", на "отключение" ... что бы обойтись меньшими трудозатратами. Много лишнего и не связанного с указанной темой, но не охота укорачивать. Поэтому целиком как написал... И ради прикола
// ===== МОДУЛЬ УПРАВЛЯЕМОГО ПРИЛОЖЕНИЯ
Процедура ОБСЛУЖИВАНИЕ(Отказ) //============================== знОбслуживание=Обслуживание.Обслуживание(); If знОбслуживание<>True Then Предупреждение(знОбслуживание); Отказ=True; EndIf; //============================== КонецПроцедуры
// == МОДУЛЬ: "Обслуживание"
Функция Обслуживание() Экспорт ТекущийПользователь=ПользователиИнформационнойБазы.ТекущийПользователь().Имя; ОбслуживаниеЗапись(); If ТекущийПользователь="Программер" Then Возврат True; EndIf; //================================ знОбслуживание=FxSub_ЗаписьПолучКонст.ПолучитьЗначениеКонстанты("Обслуживание"); If знОбслуживание=True Then Возврат True; EndIf; //================================ ДКО=FxSub_ЗаписьПолучКонст.ПолучитьЗначениеКонстанты("ДКО"); If ДКО='00010101' Then Возврат Отключение_ТекстПредупреждения("ОТКЛЮЧИЕ - ПРИНУДИТЕЛЬНОЕ"); Else Возврат Отключение_ТекстПредупреждения("ОТКЛЮЧИЕ - ПРОИЗВОЛЬНОЕ"); EndIf; //================================ КонецФункции
Функция Отключение_ТекстПредупреждения(ТипОтключения) Экспорт //====================================== If ТипОтключения="ОТКЛЮЧИЕ - ПРИНУДИТЕЛЬНОЕ" Then ВремяОжиданияВключения_ЧасМоментаОтключения=Константы["ОбслуживаниеОтключено_Пояснение"].Получить(); ВремяОжиданияВключения=Константы["ОбслуживаниеОтключено_ПояснениеЧерез"].Получить(); If ВремяОжиданияВключения="" Then ПояснениеБудетВклЧерез="" Else ПояснениеБудетВклЧерез="Работоспособность будет возоблена примерно через: " EndIf; If ВремяОжиданияВключения_ЧасМоментаОтключения="" Then Текст="ОБСЛУЖИВАНИЕ РАЗРАБОТКИ ВРЕМЕННО ОТКЛЮЧЕНО!"+Символы.ПС+ "ИДЕТ ПРОЦЕСС ОБНОВЛЕНИЯ КОНФИГУРАЦИИ!"; Else Текст="ОБСЛУЖИВАНИЕ РАЗРАБОТКИ ВРЕМЕННО ОТКЛЮЧЕНО!"+Символы.ПС+ "ИДЕТ ПРОЦЕСС ОБНОВЛЕНИЯ КОНФИГУРАЦИИ!"+Символы.ПС+ ПояснениеБудетВклЧерез+ВремяОжиданияВключения_ЧасМоментаОтключения; EndIf; Else Текст="Дело в з...це ребята;). Срок службы разрабтки истек... за продление нужно заплатить :) )))):)"; // Это так ... Шутка... эту строку уберу.. равно как и функцию: "ДКО_Check(ДКО)" EndIf; //====================================== Возврат Текст; КонецФункции
Процедура ОбслуживаниеЗапись() Экспорт знОбслуживание=Константы["Обслуживание"].Получить(); знОтключение=Константы["Отключение"].Получить(); ДКО=Константы["ДКО"].Получить(); ДКО_Check=ДКО_Check(ДКО); If ДКО_Check=True Then If знОбслуживание=True Then Константы["Обслуживание"].Установить(False); EndIf; //Константы["Отключение"].Установить(True); Else If знОтключение=True Then If знОбслуживание=True Then Константы["Обслуживание"].Установить(False) EndIf; Else If знОбслуживание=False Then Константы["Обслуживание"].Установить(True) EndIf; EndIf; EndIf; КонецПроцедуры
Функция ДКО_Check(ДКО) Экспорт //Дата конца обслуживания - проверка TrueFalse=False; //====================================== Цифра_ДКО=МесяцГодДата_серв.ГодМесяцДень_Цифра(ДКО); //-------------------------------------- If Строка(ДКО)='00010101' Then GoTo ~Возврат; EndIf; //====================================== ТекстЗапроса=FxSub_МетаДанные.ЗапросТекстПоСтруктуре("РегистрСведений.ОтчетныеМесяцы",Новый Структура("Дата"),)+" УПОРЯДОЧИТЬ ПО Дата УБЫВ"; Запрос = Новый Запрос(ТекстЗапроса); //-------------------------------------- Выгрузка = Запрос.Выполнить().Выбрать(); //-------------------------------------- Пока Выгрузка.Следующий() Цикл ДатаОтчетов=Выгрузка.Дата; Цифра_ДатаОтчетов=МесяцГодДата_серв.ГодМесяцДень_Цифра(ДатаОтчетов); If Цифра_ДатаОтчетов>=Цифра_ДКО Then TrueFalse=True; GoTo ~Возврат; EndIf; КонецЦикла; //====================================== ~Возврат:; Возврат TrueFalse; КонецФункции
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!