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

Хранилище

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

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

> Системная функция "ТипЗнч()" - не вопрос, а просто мнение , 1С:Предприятие 8.3 (8.3.5.1517) - управляемое приложение 3 страниц V  < 1 2 3          
Vofka Подменю пользователя
сообщение 19.11.19, 10:16
Сообщение #41

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

Цитата(Gigi @ 19.11.19, 9:48) *
прямо тут скиньте мне ГОТОВУЮ ФУНКЦИЮ ОТ 1С, КОТОРАЯ ПОЛУЧАЕТ ТИП ПО РЕКВИЗИТУ!

Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты["ДоговорКонтрагента"].Тип

Это слишком сложно, согласен. Ваш вариант куда проще.

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

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

Цитата(Vofka @ 19.11.19, 11:16) *
Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты["ДоговорКонтрагента"].Тип

Это слишком сложно, согласен. Ваш вариант куда проще.

Ша проверю годиться ли ...

Gigi @ Сегодня, 12:15 * ,
Ураааа ... smile.gif Функция возвращающая тип по реквизиту оказывается СУЩЕСТВУЕТ! Какой класс а? Слава богу что имеется.
Ладно! 1-0 в Вашу пользу smile.gif.
Но давайте не будем на этом останавливаться. А продолжим поединок, где пока выигрываете Вы. с счетом 1-0. Ибо Вы мне доказали что функция существует в системе.
И это аргумент согласен! И тут я признаю свое поражение. Потому что для этого слишком уважаю аргумент.
Так что, предлагаю продолжить поединок и будет ясно кто выиграет в конце и с каким счетом. smile.gif
А для этого разберемся вот с этим:
Цитата(Gigi @ 19.11.19, 12:15) *
Это слишком сложно, согласен. Ваш вариант куда проще.

И с тем чей вариант на самом деле проще использовать НА ДЕЛЕ! Мой вариант функции или вариант от 1С.
Поэтому ладно ... идем дальше.
Поэтому следующий вопрос:
На пример такая ситуация есть документ "Документ1".
Поэтому полное имя типа будет "ДокументСсылка.Документ1".
И допустим то что справа от точки нам не нужно знать. А нужно только то что слева.
Как это сделать указанной Вами системной командой 1С? smile.gif
Вот такой вот вопросик Вам!

Gigi @ Сегодня, 12:38 * ,
Я задал Вопрос!
Если ответа не последует то, уже тут я выиграл и сравнил счет. Который будет уже 1-1. smile.gif
После чего есть еще другие вопросы и тоже интересно каков будет счет. smile.gif

Vofka Подменю пользователя
сообщение 19.11.19, 11:58
Сообщение #43

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

Гууу. crazy.gif
Мне уже не интересно вам что-то доказывать или в чем-то убеждать. Если хотите дальше заниматься садомазохизмом - это ваш выбор. mamba.gif

Gigi Подменю пользователя
сообщение 19.11.19, 12:02
Сообщение #44

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

Цитата(Vofka @ 19.11.19, 12:58) *
Мне уже не интересно вам что-то доказывать или в чем-то убеждать. Если хотите дальше заниматься садомазохизмом - это ваш выбор.

Ладно ... smile.gif Понятно 1-1 счет сравнили.
А если нужно знать не тип а группу (то, это ссылка или объект или примитивный тип) тогда как? ... это уже 2-1 в мою пользу... и т.д. smile.gif
А на счет садомазохизма согласен! Ибо делать работу за разработчиков это на самом деле садомазохизм smile.gif)
Ладно забыли!
И еще ... да не злитесь Вы на автора.
На самом деле мне очень нравиться этот сайт и я его очень уважаю. Равно как и людей собравшихся тут.
За его демократичность и возможность высказывать тут любое мнение!
Вот за что!

Ладно! Всем спасибо уважаемые!
За терпение и понимание!

Макс1С Подменю пользователя
сообщение 19.11.19, 14:33
Сообщение #45

Говорящий
***
Группа: Пользователи
Сообщений: 87
Из: Днепр
Спасибо сказали: 28 раз
Рейтинг: 26

Не удержался чтобы не ответить. Насколько я понимаю суть задачи описана так:
Цитата(Gigi @ 15.11.19, 10:11) *
Потом нажимает на кнопку «Назначить реквизиты авто-заполнения» и появляется форма списка всех реквизитов конкретного справочника или документа с галочками. После чего в форме списка отмечает реквизиты для авто-заполнения, при создании нового объекта и нажимает на Ок. И тут, после чего идет запись в табличную часть справочника, на пример с именем: «AutoFill». Где по каждой строке сохраняются имена реквизитов под те значения, которые значились в самой открытой пользователем форме объекта

Т.е. дать пользователю возможность заполнить 1 раз значения по умолчанию, сохранить их и в дальнейшем подставлять в документ.

На реализацию в самописной базе чернового варианта я потратил чуть больше времени (засёк - 32 минуты) чем в 4й раз перечитывая эту ветку и несоизмеримо меньше, пытаясь понять что курит ТС.
&НаСервере
Процедура НужныйОбъектПриИзмененииНаСервере()
    // НужныйОбъект - ссылка, даже пустая элемента справончика или документа
    // ТаблицаЗначенийРеквизитов - ТЗ на форме
    // в которой пользователь будет заполнять всё, что хочет
    Мет = НужныйОбъект.Метаданные();
    Если  Метаданные.Документы.Содержит(Мет)  Тогда
        ВидОбъекта = "Документ";
    ИначеЕсли Метаданные.Справочники.Содержит(Мет) Тогда
        ВидОбъекта = "Справочник";
    Иначе
        Возврат;
    КонецЕсли;
    
    ТипОбъекта = Мет.Имя;
    
    Для Каждого Рекв Из Мет.Реквизиты Цикл        
        НовСтр = ТаблицаЗначенийРеквизитов.Добавить();
        // для идентификации какой объект заполнять,
        // хотя здесь тоже можно 1 реквизитом обойтись
        НовСтр.ВидОбъекта = ВидОбъекта;
        НовСтр.ТипОбъекта = ТипОбъекта;    
        
        НовСтр.ИмяРквизита = Рекв.Имя;
        // для составого типа будет массив, непринипиально
        НовСтр.ТипДанных = Рекв.Тип;
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура НужныйОбъектПриИзменении(Элемент)
    НужныйОбъектПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ТаблицаЗначенийРеквизитовПриАктивизацииЯчейки(Элемент)    
    Если Элемент.ТекущийЭлемент.Имя = "ТаблицаЗначенийРеквизитовЗначениеРеквизита" Тогда
        ТекущиеДанные = Элементы.ТаблицаЗначенийРеквизитов.ТекущиеДанные;

        Если ЗначениеЗаполнено(ТекущиеДанные.ТипДанных) Тогда
            // кроме этого места, когда пользователь выбирает данные, тип больше нигде не нужен
            Элемент.ТекущийЭлемент.ОграничениеТипа = ТекущиеДанные.ТипДанных;
        КонецЕсли;
    КонецЕсли;    
КонецПроцедуры

&НаСервере
Процедура СохранитьШаблонНаСервере()
    Набор = РегистрыСведений.ДанныеАвтозаполнений.СоздатьНаборЗаписей();
    Набор.Отбор.ВидОбъекта.Установить(ВидОбъекта);
    Набор.Отбор.ТипОбъекта.Установить(ТипОбъекта);
    
    Набор.Прочитать();
    Набор.Очистить();
    
    // заполненную значениями таблицу можно сохранить в регистр сведений или куда угодно !!!БЕЗ ТИПОВ!!!
    // при заполнении нового элемента значениями по-умолчанию мне всё равно какой там тип.    
    Для Каждого Стр Из ТаблицаЗначенийРеквизитов Цикл
        Если ЗначениеЗаполнено(Стр.ЗначениеРеквизита) Тогда
            НоваяЗапись = Набор.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяЗапись,Стр);
        КонецЕсли;
    КонецЦикла;
    
    Набор.Записать();
КонецПроцедуры

&НаКлиенте
Процедура СохранитьШаблон(Команда)
    СохранитьШаблонНаСервере();
КонецПроцедуры




так что счёт 0-22(половина постов этой темы) не в вашу пользу
Моё мненеие: вам очень сильно нужно учить матчасть и потренироваться строить структуру ваших решений до начала программирования с более опытными коллегами. Ну и кончено не выливать кучу рассуждений на форумах, вместо того чтобы озвучить внятно задачу и попросить помощи.
Отдельные посты я бы вообще потер, чтобы, не дай бог, не попались кому-то начинающему на глаза, который всерьёз воспримет все ваши АКСИОМЫ.

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

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

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

Цитата(Макс1С @ 19.11.19, 14:33) *
Моё мненеие: вам очень сильно нужно учить матчасть и потренироваться строить структуру ваших решений до начала программирования с более опытными коллегами.

У ТС-а мнение такое: все должно делаться просто с помощью интуиции, в чем он пытается всех убедить. А что-то учить, как я понял, для ТС-а это принципиальный вопрос, ответ на который: нет. crazy.gif

Кстати, а почему вы ЗначениеРеквизита вставили в реквизиты, а не в ресурсы?

Batchir Подменю пользователя
сообщение 19.11.19, 15:50
Сообщение #47

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3483
Из: Одесса
Спасибо сказали: 1339 раз
Рейтинг: 986.3

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

Vofka Подменю пользователя
сообщение 19.11.19, 16:18
Сообщение #48

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

Цитата(Batchir @ 19.11.19, 15:50) *
В регистре сведений абсолютно без разницы где будет храниться значение в реквизите или в ресурсе, они равнозначны.

Если регистр периодический, то обращаясь к таблицам СрезПервых/СрезПоследних там разве доступны реквизиты?

Batchir Подменю пользователя
сообщение 19.11.19, 17:07
Сообщение #49

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3483
Из: Одесса
Спасибо сказали: 1339 раз
Рейтинг: 986.3

Цитата(Vofka @ 19.11.19, 16:18) *
Если регистр периодический, то обращаясь к таблицам СрезПервых/СрезПоследних там разве доступны реквизиты?

Да, доступны. Так же как и в ресурсах регистра сведений (в отличии от других регистров) можно указывать не только числа

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

Макс1С Подменю пользователя
сообщение 19.11.19, 17:56
Сообщение #50

Говорящий
***
Группа: Пользователи
Сообщений: 87
Из: Днепр
Спасибо сказали: 28 раз
Рейтинг: 26

Цитата(Vofka @ 19.11.19, 15:15) *
Кстати, а почему вы ЗначениеРеквизита вставили в реквизиты, а не в ресурсы?

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

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

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

Гуу уважаемые ... Я опять удивлен... потому что опять вижу что ...
Цитата(Макс1С @ 19.11.19, 15:33) *
На реализацию в самописной базе чернового варианта я потратил чуть больше времени (засёк - 32 минуты) чем в 4й раз перечитывая эту ветку и несоизмеримо меньше, пытаясь понять что курит ТС.

Короче ... опять ... какой это 4-ый раз уважаемые? Я специально изложил подробно и понятно что бы было ясно что нужно было. О Господи.. Ведь думал что и без этого поймут с полу слова.
Цитата(Макс1С @ 19.11.19, 15:33) *
Т.е. дать пользователю возможность заполнить 1 раз значения по умолчанию, сохранить их и в дальнейшем подставлять в документ.

СОВЕРШЕННО ВЕРНО! Гууу ... Наконец то ... поняли именно то что и было нужно. В представленное Вами решение пока не вник, но изучу его обязательно. Но уже вижу что я решил задачу по другому.
Но это не суть важно. Ведь одно и то же можно сделать по разному.
Цитата(Макс1С @ 19.11.19, 15:33) *
так что счёт 0-22(половина постов этой темы) не в вашу пользу
Моё мнение: вам очень сильно нужно учить матчасть и потренироваться строить структуру ваших решений до начала программирования с более опытными коллегами. Ну и кончено не выливать кучу рассуждений на форумах, вместо того чтобы озвучить внятно задачу и попросить помощи.
Отдельные посты я бы вообще потер, чтобы, не дай бог, не попались кому-то начинающему на глаза, который всерьёз воспримет все ваши АКСИОМЫ.

Счет 0-22 или сколько? Может 0-51? потому что уже 51-ый пост в этой теме.
Это мы еще посмотрим уважаемые! smile.gif Да уж прямо ... разбежались. Вы так уверены в безукоризненности системы 1С? Я Вам покажу какая это "безукоризненная" система. И при этом, подчеркиваю НИЧЕГО ЛИЧНОГО! Абсолютно! Уверяю Вас. Так что пожалуйста без не нужного личного восприятия того что говорю. Так что я покажу вам о какой "идеальной! системе идет речь. И каков будет общий счет мы это еще посмотрим!
Цитата(Vofka @ 19.11.19, 16:15) *
Кстати, а почему вы ЗначениеРеквизита вставили в реквизиты, а не в ресурсы?

Вы имеете ввиду в реквизиты табличной части справочника? Потому что я именно так и сделал. И имеете ввиду почем так сделал? Да потому, что регистр сведений к сожалению не имеет табличной части. Что опять удивляет почему создатели 1С так сделали. Без ТЧ. И поэтому вынужден был создать регистр сведений: «IP» с одним измерением: IP. И с ресурсом: «AutoFill» (С типом: "СправочникСсылка.AutoFill"). И вот как раз справочник: «AutoFill» не имеет реквизитов а только табличную часть. Где и хранятся данные для авто-заполнения под каждый IP. И значение наименование этого справочника это IP пользователя.
Ну тут можно было записывать не под IP а под пользователя или под и того и другого. Но я так решил для начала. Для теста. Все это и именно так я сделал для увеличения скорости получения данных авто-заполнения. Т.е. вначале идет запрос в рег сведений по конкретному IP. Потом узнается ссылка на справочник где хранятся данные а уже потом анализ табличной части. Вот как. Так просто быстрее. И кроме того так вообще удобнее для даже интерактивного понимания у кого какие настройки. Т.е. одна настройка один элемент справочника с соотв-им IP в наименовании. А все остальное в ТЧ справочника. И я изначально вообще хотел обойтись без справочника. Т.е. все данные хранить в реге. Но не получилось, потому что рег не имеет ТЧ. Опять не понимаю логику ПОЧЕМУ.
Но ладно ... это что касается цели которая только щас стала понятна. И поэтому предлагаю Вам уважаемые, давайте оставим ее в покое. Просто возьмем и забудем ее. А вернемся к изначальной теме данных постов. Т.е. к заглавию данной дискуссии. Ибо я вообще не хотел объяснять в чем цель. И решил изложить ее ибо тут на этом настаивали. Так что давайте забудем это, а вместо этого вспомним изначальную тематику. Да ту самую системную функцию ТипЗнч(). И это для того что бы разобраться в том, на самом ли деле система так "идеальна" как некоторые считают. И потом посмотрим каков будет счет. 0-22 или 22-0. Так что мы это еще увидим.
И в ОСОБЕННОСТИ разберемся вот с этим:
Цитата(Макс1С @ 19.11.19, 15:33) *
моё мнение: вам очень сильно нужно учить матчасть и потренироваться строить структуру ваших решений до начала программирования с более опытными коллегами. Ну и кончено не выливать кучу рассуждений на форумах, вместо того чтобы озвучить внятно задачу и попросить помощи.
Отдельные посты я бы вообще потер, чтобы, не дай бог, не попались кому-то начинающему на глаза, который всерьёз воспримет все ваши АКСИОМЫ.

И с тем на самом деле кого нужно слушать начинающему программисту. Вас уважаемые последователи системы 1С. Более опытных или меня с гораздо меньшим опытом. Так же как в сказке Андерсона про голого короля. Где ребенок оказался умнее, чем все взрослые вместе взятые. И выиграет ли начинающий если воспримет всерьез те на самом деле АКСИОМЫ, о которых полезно было бы знать основателям 1С, или наоборот проиграет.
Поэтому предлагаю оставить в покое цель. Ибо что вы думаете? Которая казалось бы нужная. Но Вы думаете я вам сказал все проблемы которые возникают при ее реализации? Ошибаетесь! Да если я Вам начну объяснять со сколькими проблемами я столкнулся для решения поставленной задачи то дискуссия получиться просто гигантской. При том, что итак не малая.
Поэтому начну с простого и элементарного и с чистого листа
Цитата(Макс1С @ 19.11.19, 15:33) *
Моё мненеие: вам очень сильно нужно учить матчасть и потренироваться строить структуру ваших решений до начала программирования с более опытными коллегами.

Вот и думаю удачная возможность посоветоваться с Вами уважаемые. Как с более опытными.
Так вот системная функция: "ТИПЗНЧ()"
РАУНД ПЕРВЫЙ:
Допустим, полученное значение это "СправочникСсылка.Справочник1".
И допустим нас не интересует что справа от точки. А интересует только то что слева.
Вопрос: Как с помощью функции ТипЗнч() узнать то что слева от точки.
Вот такой вопрос. И это первый раунд smile.gif
И давайте пожалуйста прежде чем объявлять счет 0-22, до этого с этого и начнем. С самого элементарного.
И пожалуйста если решите ответить на этот вопрос могу ли я Вас попросить не спрашивать для чего это нужно. Знать только то что слева от точки. Пожалуйста не задавайте такой вопрос вообще. Нужно и точка!
Сперва покажите мне возможно ли это знать из функции ТипЗнч(), так же легко и просто как уже в моей функции. А для чего нужно с этим позже разберемся.
Так вот, я задал Вам вопрос. И это первый раунд.

Batchir Подменю пользователя
сообщение Вчера, 16:47
Сообщение #52

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3483
Из: Одесса
Спасибо сказали: 1339 раз
Рейтинг: 986.3

Давайте без "допустим"? ТипЗнч возвращает тип переданного в неё значения (неожиданно, да?).

ТипЗнч("СправочникСсылка.Справочник1") - это строка, какую информацию Вы хотите получить от параметра типа "Строка"?
Для того что бы получить всё что слева нужно использовать методы, которые предназначены для строк.
ЧтотоСлева = СтрРазделить("СправочникСсылка.Справочник1",".")[0];

или вот, основываясь на посте Vofka,
ПроверяемыйТип = Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты["ДоговорКонтрагента"].Тип;
ЧтотоСлева = СтрРазделить(Метаданные.НайтиПоТипу(ПроверяемыйТип .Типы()[0]).ПолноеИмя(),".")[0];

(это сарказм если что)


Поэтому, укажите конкретно относительно чего вы хотите получить ту информацию которую просите от ТипЗнч?
А то опять 1000 букв, но одна вода.

Сообщение отредактировал Batchir - Вчера, 18:41

Макс1С Подменю пользователя
сообщение Вчера, 16:58
Сообщение #53

Говорящий
***
Группа: Пользователи
Сообщений: 87
Из: Днепр
Спасибо сказали: 28 раз
Рейтинг: 26

Цитата(Gigi @ 20.11.19, 9:43) *
Я специально изложил подробно и понятно что бы было ясно что нужно было

Ничего подобного. В одном посте я нашел упоминание задачи, всё остальное - вода.
Цитата(Gigi @ 20.11.19, 9:43) *
проблемами я столкнулся для решения поставленной задачи

не интересно сколько проблем. Большинство, если не все, от незнания или нежелания изучить правильные подходы для решения задач. Озвученная задача достаточно тривиальна для того, чтобы изобретать велосипеды.
Искренне понимаю, что трудно признать свой много-дневный/месячный труд не идеальным из-за неверного подхода в самом начале, но ничего страшного, на ошибках учатся.
Цитата(Gigi @ 20.11.19, 9:43) *
Так вот системная функция: "ТИПЗНЧ()"

не знаю чем вас зацепила эта функция... О том что может любая функция и для чего она предназначена описано в документации к каждой системе, не только к 1С.
Вы расчесываетесь вилкой? На хлеб намазываете зубную пасту? к слову о том что инструмент не важен... вы пытаетесь сработавший в одном случае инструмент применить в других, неподходящих, целях. Открыв пивную бутылку ложкой, пытаетесь открыть ложкой окно или глаза спящему человеку.
Цитата(Gigi @ 20.11.19, 9:43) *
Вопрос: Как с помощью функции ТипЗнч() узнать то что слева от точки.

Как с помощью самоката уехать на луну?
Как зубочисткой убить кита?
Как с помощью линейки и циркуля построить квадратуру круга?

Внимание, правильный вопрос: "Как узнать то что слева от точки?"
Ответ в моём предыдущем посте, в самом начале листинга, вместе с примером решения задачи, которую вы озвучили.

Цитата(Gigi @ 20.11.19, 9:43) *
И это первый раунд.

Никаких раундов. Это была последняя бесплатная консультация

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


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

 

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