Имя: Пароль:
1C
 
Сегодня испытал радость, обводя код 1С вокруг носа через расширения
0 Гений 1С
 
гуру
15.04.21
20:07
Красота какая, зацените:

Рас:


&НаКлиенте
&Вместо(«УправлениеФормой»)
Процедура дор_УправлениеФормой()

    Элементы.ИНН.МаксимальнаяШирина = 18;
    ПредМодифицированность = Модифицированность;
    ПредИНН = Объект.ИНН;

    ПродолжитьВызов(); //Тут обрезается ИНН типовым кодом

    Элементы.ИНН.ОграничениеТипа                        = Новый ОписаниеТипов(«Строка»,,Новый КвалификаторыСтроки(18));
    Объект.ИНН = ПредИНН;
    Модифицированность = ПредМодифицированность;

КонецПроцедуры


Двас:

&Вместо(«ПередЗаписью»)
Процедура дор_ПередЗаписью(Отказ)
    //Через ЭтотОбъект, чтобы не включать ИНН в расширение
    ПредИНН = ЭтотОбъект.ИНН;

    ПродолжитьВызов(Отказ); //Тут обрезается ИНН типовым кодом

    ЭтотОбъект.ИНН = ПредИНН;

КонецПроцедуры
1 RomanYS
 
15.04.21
20:11
>>  //Через ЭтотОбъект, чтобы не включать ИНН в расширение
>>    ПредИНН = ЭтотОбъект.ИНН;

Это в модуле формы? Тогда ЭтотОбъект - это форма, ЭтотОбъект.ИНН - это реквизит формы.
2 Anton1307
 
15.04.21
20:19
Не пойму, в чём победа?
Ну сделал что-то, чтобы доработать/нивелировать функционал, ничего великого в коде нет.
Это уровень начинающего студента.
Есть на форуме такой перец - "Гений 1С" называется, он любит вот такие перлы выдавать
3 Anton1307
 
15.04.21
20:19
(2) Блин... Это он и есть...
Неудобно получилось, sorry :)
4 Ненавижу 1С
 
гуру
15.04.21
20:27
ЭтотОбъект можно не писать в любом случае. Синтакс-контроль ругается, но все работает конечно.
5 Гений 1С
 
гуру
15.04.21
20:29
(4) возможно этот коммент тебе объяснит, зачем я пиши Объект, гыгыгы //Через ЭтотОбъект, чтобы не включать ИНН в расширение
6 Dmitry1c
 
15.04.21
20:31
Было бы радости, хвастаться выполнением работы квалификации стажера.
7 Ненавижу 1С
 
гуру
15.04.21
20:33
(5) возможно ты попробуешь без включения в расширение и без ЭтотОбъект? И прочтешь что написано в (4)?
8 Ненавижу 1С
 
гуру
15.04.21
20:34
Вообще идея делать ИНН 18 символов ОЧЕНЬ сомнительная. На крайний случай сделал бы ещё один реквизит
9 Voronve
 
15.04.21
20:39
(0) //Через ЭтотОбъект, чтобы не включать ИНН в расширение
Можешь не включать поле в расширение и обращаться к нему как к полю объекта.
Не благодари
11 RomanYS
 
15.04.21
20:52
(4)(5) ЭтотОбъект это форма, ЭтотОбъект.ИНН - это реквизит формы. Каким образом данные из реквизита формы попадают в сам объект?
12 Ненавижу 1С
 
гуру
15.04.21
20:54
(11) похоже второй метод из модуля объекта по отсутствию аннотации
13 Гений 1С
 
гуру
15.04.21
22:25
(12) да, второй метод из модуля объекта.
(11) Там этотОбъект есть объект справочника, все норм
14 Гений 1С
 
гуру
15.04.21
22:25
(9) я так и делаю, КЭП
15 Конструктор1С
 
16.04.21
04:47
Как мило, элитарный программист учится работать с расширениями
17 rphosts
 
модератор
16.04.21
06:27
Не шалим в ветке
18 Гений 1С
 
гуру
16.04.21
08:04
(17) кстати, теги 1с и 1С и даже латинские 1C не мешало бы сделать идентичными.
19 PuhUfa
 
16.04.21
08:20
(0) а почему нельзя было просто в "Тут обрезается ИНН типовым кодом" поправить и не городить то что нагорожено?
20 Фрэнки
 
16.04.21
08:24
(17) ну так сам текст заголовка обязывает вспомнить эти присказки : зачем тс в заголовок это всунул?!
21 Фрэнки
 
16.04.21
08:26
(18) а вот это твое "кстати" было совсем не кстати - если ты все-таки понимаешь разницу в языках, тогда зачем в именуешь темы таким образом?
22 fisher
 
16.04.21
09:20
А кто как работает с расширениями? Имею в виду их количество?
Просто одна блямба, куда все заплатки пихаются? Или декомпозиция какая-то делается?
23 VladZ
 
16.04.21
09:27
(22) Я исхожу из следующих соображений:
- количество расширений должно быть минимально. Небольшим количеством легче управлять.
- Если разрабатываемый проект может быть тиражирован (актуально для тех, у кого несколько юр.лиц на поддержке и у каждого своя база) - делаем отдельное расширение
- Весь остальной функционал - лепим в одно расширение.

Но... Не забываем, что есть объекты, которые мы в расширение добавить не можем. И вот тут начинаются танцы в бубном.
24 Serg_1960
 
16.04.21
09:39
Аннотация к ветке: "Испытал оргазм, забивая гвозди микроскопом" ( Гений 1С )
25 Гений 1С
 
гуру
16.04.21
15:23
(22) (23) я тоже делаю одно, если расширение не тиражируемое.
Объекты метаданных всегда добавляю в конфу.
26 2mugik
 
16.04.21
16:06
(22)У нас одна блямба, как в 25.
27 PLUT
 
16.04.21
17:03
(25) а в типовых лепится одно расширение на один костыль, модное слово "патч". Ну так вот - можно посмотреть в отдельном окне установленные исправления (патчи)
28 Вафель
 
16.04.21
19:52
(27) патчи они включаются в конфу потом, а выпускаются по мере обнаружения.
Хотя можно было делать накопительные патчи
29 PLUT
 
16.04.21
20:44
(28) да они там крестиком вышивают и часто отзывают костыли. проще один костыль - одно расширение
30 Гений 1С
 
гуру
16.04.21
21:51
(27) ну не могут же они называть свои поделки Костылями. ;-)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший