#0
by Гений 1С
Который означает, что параметр не заполнен. Т.е. чтобы можно было вызвать функцию так: Ф(А, П, В); А не так: 1С не воспринимает неопределено, как незаполненный параметр в своих типовых функциях платформы. Вот наприер, вместо того, чтобы вызвать метод Добавить с параметрами неопределено, пришлось извращаться так:
#10
by Гений 1С
Еще раз: Если бы можно было написать так: То ошибки бы не было. Или 1Сникам по барабану до хорошего функционального программирования?
#12
by GenV
А с пустым параметром Представление, Пометка, Картинка С.Добавить(Значение, Представление, Пометка, Картинка) должно сработать?
#16
by AntonioS
да все проще нужно у функции оболочки обДобавитьУникальноВСписокЗначений у параметров Представление, Картинка, Пометка выставлять по умолчанию такие же значения как и у метода списка значений Добавить.
#18
by Гений 1С
да, это все равно, как если бы один из параметров был пропущен. Ну что, кто-то уже догнал, или будем развивать мозг 1Снеков дальше?
#19
by GenV
Будем развивать :) Получается Добавить должна анализировать на Пустой параметр и подставлять какое-то значение или это должен делать я в обДобавитьУникальноВСписокЗначений?
#22
by Гений 1С
Суть в том, что нельзя вызвать функцию, которая может пропускать параметры и указать, какой параметр не передаватаь. То бишь если есть функция Ф(А, Б=..., В=..., Г=...) То нельзя вызвать ее так Ф(А,Б,В,Г), если я например не знаю Б или В или Г. Придется так: Если Б=Неопределено И В=Неопределено И Г=Неопределено Тогда Ф(А) ИначеЕсли Б=Неопределено И В=Неопределено Тогда Ф(А,,В,Г) .... Чуствуете убогость?
#23
by GenV
Я почитал. Не тупой ... "Получается Добавить должна анализировать на ПустойПараметр и подставлять какое-то значение"?.
#25
by Гений 1С
если пользователь не проставил параметр Картинка, то ей бы присваивалось ПустойПараметр и можно было бы смело вызывать Добавить(..,..,..., Картинка), так бы оно переварило, а когда Картинка=Неопределено не переваривает, т.е. Неопределено (или NULL) - Это не то же, что не пустой параметр.
#26
by Гений 1С
кури в данной функции и во многих других Неопределено воспринимается не как пустой, а как заполненный параметр. Неопределено не заменяется на значение по умолчанию. Криво!
#27
by GenV
Я про это в и говорю. Мне Неопределено вполне бы подошло. Это уже кривая реализация функции!
#29
by Гений 1С
Имхо нужно. Или же тогда воспринимать во всех типовых функциях неопределено как пустой параметр.
#32
by AeDen
обДобавитьУникальноВСписокЗначений(С, Значение, Неопределено, Неопределено, неопределено) не канает?
#36
by Terv
Синтаксис не проверял, но мысль я думая ясна .. не говоря уже о том что необходимости я в этом особой не вижу
#41
by Гений 1С
Терв, как обойти я знаю, но это на самом деле дыра в функционале. Все таки Выполнить - это не тот метод, который 1С рекомендует юзать.
#42
by Гений 1С
ксати со списком значений можно обойти, но вот в других случаях хз - уже пару раз нарывался.
#43
by Terv
Блин ну сделай так [1c] Функция обДобавитьУникальноВСписокЗначений(С, Значение, Представление="", Пометка=Ложь, Картинка=Неопределено) Экспорт Картинка = ?(Картинка = Неопределено,Новый Картинка,Картинка); Если С.НайтиПоЗначению(Значение)=Неопределено Тогда Эл=С.Добавить(Значение, Представление, Пометка, Картинка); КонецЕсли; Возврат ложь; КонецФункции [1c]
#44
by GenV
+ Мне так и не обяснил: неужели лучше вводить тип данных "ПустойПараметр" и переделовать все функции под него вместо того, чтобы просто переделать функции под например Неопределено или неуказание никакого параметра ... А ведь просто хотелось обсудить этот вариант ...
#48
by Гений 1С
Значит нужно нормальное реагирование на Неопределено. у тебя мозгов не хватает осознать, 1Снек! гыгыгы.
#49
by АП
тьфу ты... въехал, о чем ты вещаешь )) проблема не в значениях по умолчанию, а в приведении типов... дык это как раз в 1С нормально... нету тут строгой типизации, как, например, в том же С++. Отслеживать такие вещи должен программист. Для 1С это нормально, ибо оно "аля язык программирования"...не жди от него большего. хочешь приведения, как в Smalltalk? дык оно именно "аля", а не полноценный язык :)
#52
by Гений 1С
гыгыгы, дошло хоть до одного речь идет не о частном случае, я уже писал, что в списке можно выкрутиться, а вот в других случаях - нет. Только перебором или выполнить. ;-(
#54
by АП
кстати, голос в моно не засчитывать (вопрос был не правильно истолкован) я бы выбрал "Нужно, но приходится терпеть" 1C больше заточено под конечного юзера (в прикладном смысле), а посему программерам приходится многое делать через то самое место. Навряд ли такими вещами в 1С будут заниматься, к сожалению...
#55
by Гений 1С
ага... причем именно к сожалению. Если бы кое-какие вещи для кодеров доточили, от этого бы выиграли и юзвери. ;-)
#59
by Гений 1С
выиграли ли бы пользователи, если бы можно было делать свои контролы с помощью вложенных форм? однозначно... так что не надо этих песен
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как из типа значения (Тип) получить значение по умолчанию данного типа?
- Как ограничить тип у поля выбора с типом "Описание типов"?
- v7: ЗиК 275. Нужно ввести удержание с проводкой Дт70-Кт73.3
- Тип(Реквизит.Тип) = Тип("Строка")
- Тип(Реквизит.Тип) = Тип("Строка")
- Нужно поставить 1С V8 SQL версию, что нужно для этого купить?
- Нужно получить тип у составного типа реквизита табличной части
- Как привести значение типа "Описание типов" к значению типа "Тип"
- Поле ввода с составным типом данных. Как убрать выбор типа, если указан тип?
В этой группе 1С
- Дерево значений поиск вверх (или передача в рекурсию всего дерева)
- Бухгалтерские итоги и обратный порядок. 1С Предприятие
- Выгрузка из 1С 7.7 в Клиент Банк РФК
- Инвентаризация товаров на складе и ОСВ суммы не совпадают
- Работа с переключателями
- Текущая строка в ТЗ
- Как сделать сумму прописью на английском?
- Где можно скачать компоненты _1C.V8.Data и _1C.V8.WebControl?
- планировщик заданий в 1С
- Слетают настройки пользователей в 1С 8.1
- "76.6,76.7,76.8" Счет учёта нельзя использовать в проводках.
- Как программно определить размер картинки?
- Аналог семерочного ИзСтрокиСРазделителями
- v7: Перенос справочника
- Нарушение уникальности кодов Справочника Номенклатура
- Перенос остатков из Бух в ТиС с учетом ГТД
- v7: Не присваивается реквизит
- Поле табличного документа
- v7: Если аналог функции 1С 8.0 Выполнить(ТекстПрограммы) в 1С 7.7
- v7: 1с была завершена аварийно и после этого сбились остатки