|
|
|
Хорошие и плохие имена переменных и функций PR, zzz_zzz_zzz, Timon1405, ДемьянТ, Garykom, DiMel_77, Волшебник, Ёпрст, Бычье сердце, PLUT, Кирпич, evorle145, laeg, Гипервизор, Mankubus, MWWRuza, comp2006, АгентБезопаснойНацио, Chai Nic, dmt, Шурик71, phabeZ, vicof, formista2000, Niveus, trk415e76, Garikk, Domovoi, Хряк, Greeen, banco, abfm, Queen_Chrysalis, kostik79, ReaLg, Климов Сергей, alexis_nov, WebberNSK, VladZ, alexsergeevatmista, GreenLab, ТДК, , NorthWind, svmix, DimR_71, lEvGl, TormozIT, mortal, ZloyBrawler, Ватт, Fedor-1971, Группа неравнодушных, Prog_man, Rovan, H A D G E H O G s, spiller26, Кир Пластелинин, Kabz, sdf, fbear, Доминошник, Didrob, BOOL, X Leshiy, vsy, alex_kld_2024, Krendel, Voronve, Gera1t, DrZombi, Bazooka, Frya, piter3, malikov, dchumak, Сметанин, Сергиус, Baiji
| ☑ | ||
|---|---|---|---|---|
|
0
Волшебник
27.11.25
✎
20:08
|
Давайте обсудим.
Потом прикручу пост и голосовалку. Что с венгерской нотацией? Сразу в бан? Что с длинными именами? Должно ли быть слово Получить у функции? |
|||
|
18
Волшебник
27.11.25
✎
21:06
|
Пишите-пишите, я конспектирую...
|
|||
|
19
Волшебник
27.11.25
✎
21:07
|
(7) вы считаете себя не ботом?
|
|||
|
20
Asmody
27.11.25
✎
21:11
|
(15) где я написал про "однобуквенные сокращения"? такого я не писал
сравни: Процедура КакойТоМедодОбработки(ПараметрНоменклатура, ПараметрКонтрагент, ПараметрОрганизация); Номенклатура = ПараметрНоменклатура; Контрагент = ПараметрКонтрагент; Организация = ПараметрОрганизация; КонецПроцедуры или Процедура какойТоМетодОбработки(пНоменклатура, пКонтрагент, пОрганизация); Номенклатура = пНоменклатура; Контрагент = пКонтрагент; Организация = пОрганизация; КонецПроцедуры или МассивЧегоНибудь = ОбщегоНазначенияМассивы.НовыйМассив(ЧтоНибудь, ЕщеЧтоНибудь, ИЕщеЧтоНибудь); массивЧегоНибудь = _Массивы.НовыйМассив( ЧтоНибудь, ЕщеЧтоНибудь, ИЕщеЧтоНибудь); Я не против длинных имен, я даже наоборот очень за. Но я хочу, чтобы имена уменьшали когнитивную нагрузку, а не увеличивали её. И чтобы было меньше "смыслового мусора". "ПараметрМетода", "ОбщегоНазначения" - это смысловой мусор. И 1Совские "КлиентСерверПовтИспПереопределяемый" - это тоже смысловой мусор, от бедности и безысходности |
|||
|
21
Garykom
гуру
27.11.25
✎
21:11
|
(20) Сравни
Процедура КакойТоМедодОбработки(ПараметрСтруктура); Номенклатура = ПараметрСтруктура.Номенклатура; Контрагент = ПараметрСтруктура.Контрагент; Организация = ПараметрСтруктура.Организация; КонецПроцедуры |
|||
|
22
Garykom
гуру
27.11.25
✎
21:12
|
(20) >"ПараметрМетода", "ОбщегоНазначения" - это смысловой мусор.
Это не смысловой мусор! Это человекопонятный без заучивания лишнего Да многословность как недостаток, но малословность с изобилием аббревиатур и непонятных имен ничуть не лучше |
|||
|
23
Asmody
27.11.25
✎
21:13
|
В типовых 100500 модулей начинается одинаково.
Поэтому, ctrl+пробел не спасает. Проще поставить "_" и дойти до нужного, чем выбирать из дохера вариантов |
|||
|
24
Asmody
27.11.25
✎
21:14
|
(21) Теперь тебе еще надо как-то проверить, что в этой структуре именно те свойства, которых ты ожидаешь.
Без типов такой стиль очень небезопасен |
|||
|
25
Garykom
гуру
27.11.25
✎
21:16
|
(21)+ когда надо допиливать - не приходится изменять объявления методов
только внутрь составного параметра докинуть и все на большом проекте внедрения типовых (с глобальными доработками, причем с кучей итераций) это сильно облегчает |
|||
|
26
Asmody
27.11.25
✎
21:16
|
(21) хуже всего, конечно,
Процедура КакойТоМедодОбработки(ПараметрСтруктура); ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПараметрСтруктура); КонецПроцедуры и такое в типовых встречается |
|||
|
27
DiMel_77
27.11.25
✎
21:17
|
(24) Стандартами разработки предусмотрено не более 7-ми параметров в процедурах или функциях (насколько я помню), а передача структуры облегчает дальнейшую доработку в случае необходимости. Я своим стажерам тоже рекомендую структуры использовать.
|
|||
|
28
Garykom
гуру
27.11.25
✎
21:17
|
(23) Используй Сервис - Шаблоны текста
Там есть замена |
|||
|
29
Garykom
гуру
27.11.25
✎
21:17
|
(24) Не надо
Точнее тогда надо и кучу параметров метода проверять )) |
|||
|
30
Asmody
27.11.25
✎
21:18
|
(25) когда в платформе будет нормальная проверка типов. а не вот это вот //@strict-types
|
|||
|
31
Garykom
гуру
27.11.25
✎
21:19
|
(26) Это идеальный код!
Даже доработки не нужны когда новое внутри ЭтотОбъект и ПараметрСтруктура добавляется, причем имена совпадают Вот если нужно иное перекрытие или не полное заполнение приходится с доп.параметрами ЗаполнитьЗначенияСвойств() возиться |
|||
|
32
Garykom
гуру
27.11.25
✎
21:20
|
(30) Это уже будет не 1С а нечто иное
Согласен что строгая типизация лучше Но нетути |
|||
|
33
Asmody
27.11.25
✎
21:20
|
1С плодит программистов-уродов.
Это хреново, конечно |
|||
|
34
PR
27.11.25
✎
21:20
|
(0) Код должен быть читабельным и самодокументируемым, все остальное от лукавого
По поводу Получить есть мнение, что НаименованиеНоменклатуры ничем не отличается от ПолучитьНаименованиеНоменклатуры, а значитПолучить можно и опустить, чтобы сделать название короче |
|||
|
35
H A D G E H O G s
27.11.25
✎
21:20
|
Называйте, как хотите. Но реализуйте всё функциями, возвращающими структуру с результатом
Функция ПолучитьКонтрольноеЧислоGS1(Знач ID) Экспорт СтруктураВозврата=Новый Структура; СтруктураВозврата.Вставить("Результат",Истина); СтруктураВозврата.Вставить("ОписаниеОшибки",""); СтруктураВозврата.Вставить("КонтрольноеЧисло",Неопределено); Если АСФОбщегоНазначенияКлиентСервер.ЕстьНеЦифрыВСтроке(ID) Тогда СтруктураВозврата.ОписаниеОшибки="Переданный идентификатор семейства GS1 должен содержать только цифры."; СтруктураВозврата.Результат=Ложь; Возврат СтруктураВозврата; КонецЕсли; |
|||
|
36
Garykom
гуру
27.11.25
✎
21:21
|
(35) Тоже дошло что Процедуры не нужны?
Достаточно Функций |
|||
|
37
H A D G E H O G s
27.11.25
✎
21:23
|
А по хорошему, если чуете, что будет весело, можно пробрасывать дополнительную (пока пустую) структурку в параметрах. Потом может пригодиться.
|
|||
|
38
Garykom
гуру
27.11.25
✎
21:24
|
(34) Но когда рядом
НаименованиеНоменклатуры() ЗаполнитьНаименованиеНоменклатуры() СформироватьНаименованиеНоменклатуры() то без префикса выглядит странно |
|||
|
39
Asmody
27.11.25
✎
21:24
|
(31) "Это идеальный код!" - у "нормального" программиста от такого вытекают глаза и волосы дыбом встают
|
|||
|
40
Garykom
гуру
27.11.25
✎
21:25
|
(37) Если параметров >2 - стараюсь сразу делать структуру
|
|||
|
41
PR
27.11.25
✎
21:26
|
(1) Тут борются два начала: рациональное и прекрасное
Рациональное говорит пиши все без падежов типа НоменклатураНаименованиеУстановить Прекрасное требует УстановитьНаименованиеНоменклатуры Я за прекрасное, потому что чаще всего функции и процедуры довольно уникальны, а не так, что сто функций с примерно одинаковой логикой А если уж их сто, тогда вопрос с чего бы их сто, а не одна с параметром, который может принимать сто значений А когда процедура или функция одна и называется НоменклатураНаименованиеУстановить, то хочется взять автора за шкирку и долго и внимательно выразительно смотреть ему в глаза |
|||
|
42
Garykom
гуру
27.11.25
✎
21:26
|
(39) А есть утвержденные тесты для проверки "нормальности" программиста?
|
|||
|
43
Garykom
гуру
27.11.25
✎
21:27
|
(41) >с чего бы их сто, а не одна с параметром
И с кучей Если ИначеЕсли внутри? И вызовом других?? А как насчет их имен? |
|||
|
44
Garykom
гуру
27.11.25
✎
21:29
|
(41) >хочется взять автора за шкирку и долго и внимательно выразительно смотреть ему в глаза
Иногда надо сразу думать на будущее Так влом написать "лишние" буковки? Зато потом картинка более стройная и понятная И можно поиском по "Установить" найти/перебрать все нужные методы |
|||
|
45
Kongo2019
28.11.25
✎
10:43
|
НастоящиеПрограммистыПробеламиИСимволамиПодчеркиванияНеПользуются()
|
|||
|
46
Garykom
гуру
27.11.25
✎
21:30
|
(45) "Настоящие программисты используют кавычки"."Для вызова методов"()
! |
|||
|
47
Asmody
27.11.25
✎
21:30
|
(35) у меня для такого "псевдомейби" есть
типа: Если ошибка Тогда Возврат _Результат.ВернутьОшибку(текстОшибки); Иначе Возврат _Результат.ВернутьДанные(данные); КонецЕсли; и используется: ответ = ЧтоТоНадоСделать(); Если НЕ _Результат.ЭтоОшибка(ответ) Тогда данные = _Результат.ДанныеИз(ответ); Иначе ВызватьИсключение _Результат.ОшибкаИз(ответ); КонецЕсли; |
|||
|
48
Garykom
гуру
27.11.25
✎
21:31
|
(46)+ Это вы еще кода на китайском с именами (переменных, методов и т.д.) из иероглифов не видали...
|
|||
|
49
PR
27.11.25
✎
21:31
|
(21) Нечитабельно и хрен проверишь ошибки в конфигураторе, на кол
|
|||
|
50
Garykom
гуру
27.11.25
✎
21:33
|
(47) ПиПиПи...
Тех кто использует исключения для возврата результата метода - ждет отдельный котел |
|||
|
51
Garykom
гуру
27.11.25
✎
21:33
|
(49) В конфигураторе и так хрен что проверишь
Только в режиме предприятия при выполнении кода |
|||
|
52
PR
27.11.25
✎
21:35
|
(31) Говно это, а не идеал
Все копирования свойств должны быть явно указаны, а не по принципам: — Если появился новый реквизит, то скорее всего его тоже нужно заполнять, давай заполним — Если удалили или переименовали реквизит, то и ничего страшного, не будем ругаться, просто заполним остальные свойства, а на этот хрен забьем |
|||
|
53
Asmody
27.11.25
✎
21:36
|
(50) где ты там возврат увидел, болезный?
|
|||
|
54
PR
27.11.25
✎
21:38
|
(43) Куча Если ИначеЕсли для установки наименования объекта?
А вы точно программист? |
|||
|
55
Garykom
гуру
27.11.25
✎
21:44
|
(53)
данные = _Результат.ДанныеИз(ответ); Иначе ВызватьИсключение _Результат.ОшибкаИз(ответ); Логично предположить что это внутри функции и данные возвращаются? Или не возвращаются ибо упс происходит исключение Приходится заворачивать такое в Попытку Если это не внутри функции и/или прерывание кода нормально то ок |
|||
|
56
Garykom
гуру
27.11.25
✎
21:43
|
(54) Нет для разной обработки одной сущности
В этом случае логично делать разные методы с понятными именами А не портянку внутри одного метода |
|||
|
57
PR
27.11.25
✎
21:41
|
(44) Не надо при создании обработки заполнения реквизита в существующих контрагентах сразу строить ее на БСП и предусматривать, что она может начать использоваться в англоязычных странах
Будет необходимость — добавишь Не будет — будет чище код, без всяких мутных вещей, добавленных на случай а вдруг |
|||
|
58
PR
27.11.25
✎
21:42
|
(45) А вот тут, кстати, да, я бы, если бы был начинающим одинесником и понял бы этот момент, пользовался бы подчеркиваниями, конечно
|
|||
|
59
PR
27.11.25
✎
21:47
|
(56) Если разность в том, что нужно либо наименование присвоить либо на удаление пометить, то это как бы разные вещи и разные процедуры, конечно же
А если нужно присвоить либо наименование либо код либо автора, то и че и че, просто параметр |
|||
|
60
Asmody
27.11.25
✎
21:55
|
Реально в платформе нужны нормальные неймспейсы. Папочки для общих модулей.
Модули, расширяющие типы ссылок. |
|||
|
61
Asmody
27.11.25
✎
22:21
|
(41) примерно так:
Процедура УстановитьСтатус(Знач Документ, Знач Статус) Экспорт // логика стейт-машины КонецПроцедуры Процедура УстановитьСтатусОжидание(Знач Документ) Экспорт УстановитьСтатус(Документ, Перечисления.СтатусыОпераций.Ожидание); КонецПроцедуры Процедура УстановитьСтатусВыполняется(Знач Документ) Экспорт УстановитьСтатус(Документ, Перечисления.СтатусыОпераций.Выполняется); КонецПроцедуры Процедура УстановитьСтатусВыполнено(Знач Документ) Экспорт УстановитьСтатус(Документ, Перечисления.СтатусыОпераций.Выполнено); КонецПроцедуры конечно, если этих вариантов не более 5-6. |
|||
|
62
Злопчинский
27.11.25
✎
22:37
|
я все время страдаю
писать типа Если а=1 или Если А = 1 |
|||
|
63
Злопчинский
27.11.25
✎
22:38
|
Если пишу сейчас полную ветку
Если КакаяТоХрень()=1 Тогда // типа ничего, норма Иначе // всякая шняга пишу тут КонецЕсли; |
|||
|
64
Garykom
гуру
27.11.25
✎
23:30
|
(61) Такая логика полезна когда код внутри чуть посложней
Не просто сразу УстановитьСтатус а по неким условиям Но вот Знач совершенно лишнее ибо тип не простой |
|||
|
65
Asmody
27.11.25
✎
23:56
|
(64) откуда ты знаешь, что тип не простой? Или Ссылка для тебя сложный тип?
|
|||
|
66
mmg
28.11.25
✎
00:13
|
(1) А еще так учат отдавать приказы. Уж несколько тысяч лет как
|
|||
|
67
Zamestas
28.11.25
✎
00:22
|
(41) Полностью согласен.
|
|||
|
68
Злопчинский
28.11.25
✎
01:47
|
(61) (64) а потом вздохи про глубокий стек вызова процедур в типовых... ;-)
|
|||
|
69
aka MIK
28.11.25
✎
01:57
|
(63) и получишь сразу алерт от Сонаркуба
|
|||
|
70
aka MIK
28.11.25
✎
02:03
|
(14)
У меня есть даже модуль "__", содержащий наиболее часто используемые "хелперы". Например, __.ЕслиНеопределено() или __.ЭтоСегодня() и т.д.
А нету __.___()? |
|||
|
71
Злопчинский
28.11.25
✎
02:46
|
(69) сонаркуб - тупой.
мне удобно сразу видет как ветка отрабатывает а не листать туда-сюда чтобы увидет тогда-иначе ест или нет. |
|||
|
72
Сергиус
28.11.25
✎
03:48
|
(0)После названий всяких конструкций для СКД..остальное не так уж и громоздко)
|
|||
|
73
Ёпрст
гуру
28.11.25
✎
08:05
|
(0)вообще по....х кто там чего пишет и как обзывает.
Со временем, на это не обращаешь внимание Единственное, суржик вымораживает - ты или пиши всё на английском или всё на русском, а не половина так, половина так. |
|||
|
74
maxab72
28.11.25
✎
08:49
|
(73) ZapolnitOtchenVazhnuyuPeremennuyu() ВериИнпотентБигФанкшен()
|
|||
|
75
Гипервизор
28.11.25
✎
09:44
|
(73) Например, всякие инструкции препроцессора мне проще написать латиницей без переключений туда-сюда: #Region, #Insert, #Delete. Ну или иметь раскладку Чистова или аналоги.
|
|||
|
76
maxab72
28.11.25
✎
09:49
|
(75) а зачем переключать клавиатуру? # - Альт + 35, & - Альт + 38 и т.д.
|
|||
|
77
Гипервизор
28.11.25
✎
09:59
|
(76) Я как раз и не переключаю. И запоминать это шаманство не хочется, да и быстрее ли так набирать?
|
|||
|
78
ДенисСмирнов
28.11.25
✎
10:02
|
(75) если вы про символы типа # и &, то лично мне удобнее набирать их как Alt+цифровой код, вместо переключения раскладки
|
|||
|
79
АгентБезопасной Нацио
28.11.25
✎
10:16
|
(33) не "уроды", а "парапрограммисты".©
|
|||
|
80
АгентБезопасной Нацио
28.11.25
✎
10:19
|
(75) трубоконф без переключения, по альт ставит...
|
|||
|
81
Ботаник Гарден Меран
28.11.25
✎
10:25
|
(35)
"Называйте, как хотите. Но реализуйте всё функциями, возвращающими структуру с результатом" И тут же сразу функция, возвращающая просто Булево. "Если АСФОбщегоНазначенияКлиентСервер.ЕстьНеЦифрыВСтроке(ID) Тогда" (0) Венгерская нотация - да. Длинные имена - в топку. Но короткие имена с венгерской нотацией - нужна шпаргалка или привычка. |
|||
|
82
dmt
28.11.25
✎
10:34
|
(20) а вы один работаете?
Я когда работал один - писал как удобнее пКонтрагент, втЗаказы. Но когда работа коллективная и в коде каша из разных нотаций, это бесит. Поэтому только стандарты, только хардкор |
|||
|
83
PLUT
гуру
28.11.25
✎
10:50
|
ИИчку вероятно похер на названия переменных
UID норм: ну или огрызки от гуя c75b1c74 d552dda8 |
|||
|
84
ZloyBrawler
28.11.25
✎
11:01
|
Да не пошатнись психика смертного
Топаз_Константы.ПолучитьКонстанту_ДополнительноеЗначение_Номенклатура_РабочаяСторонаКолонкиСОдностороннейИндикацией_А() ; |
|||
|
85
Волшебник
28.11.25
✎
13:16
|
(84) За такое надо бить железной линейкой по пальцам, причём ребром.
|
|||
|
86
Кирпич
28.11.25
✎
13:31
|
Вы чо тут раздухарились. Как 1с велит, так и пишите.
|
|||
|
87
Волшебник
28.11.25
✎
13:32
|
(86) Мы тоже не левой ногой сморкаемся
|
|||
|
88
H A D G E H O G s
28.11.25
✎
13:42
|
(86) Вот когда Совместимо будем проходить - тогда напишем, как сверху велели.
|
|||
|
89
ZloyBrawler
28.11.25
✎
13:47
|
(85) давайте без насилия!!!
Ваше предложение как назвать функцию выше указанную, чтобы смысл ее имени не был потерян? |
|||
|
90
Timon1405
28.11.25
✎
13:51
|
(89) как поступаете когда в таком условно-постоянном виде нужно хранить массив значений (например, список складов)?
|
|||
|
91
Гипервизор
28.11.25
✎
13:51
|
(89) А зачем в имени функции получения константы писать имя константы?
|
|||
|
92
Timon1405
28.11.25
✎
13:55
|
(62) поставьте себе https://github.com/otymko/phoenixbsl
и проверяйте себя в конфигураторе еще ДО сонара. например, можно парой кликов применить к модулю "Каноническое написание ключевых слов (CanonicalSpellingKeywords)" |
|||
|
93
VladZ
28.11.25
✎
14:08
|
(88) +500
|
|||
|
94
VladZ
28.11.25
✎
14:10
|
(1) я не понимаю, почему в Java можно написать getUserById , а в 1с нельзя написать ПолучитьНаименованиеНоменклатуры?
Почему? |
|||
|
95
Timon1405
28.11.25
✎
14:15
|
(94) может потому что в 1с нет интерфейсов и ПолучитьНаименованиеНоменклатуры 99% что будет в ОМ рядом с еще такой же сотней ПолучитьЧтотоДругое?
|
|||
|
96
ZloyBrawler
28.11.25
✎
14:41
|
(90) так как храним все в регистре сведений, то чтобы хранить списки, приходится мудрить с именами констант
Пилится функция типа получить список складов того-то сего-то. Внутри она обращается к константе, хранящей количество значений. В цикле обращается по номерам + имена к константам. Формируется массив, возвращается. Напилен ряд вспомогательных функций и процедур сохранения значений, получения, удаления. Пашет стабильно. Костыли, но только так и получается хранить все, то константное дерьмо, что насыпают юзеры в код своими особенными бизнес-процессами. Читающие функции еще создаем так чтобы они тип значения проверяли. Типа константа должна быть именно число или иной тип!
|
|||
|
97
ZloyBrawler
28.11.25
✎
14:34
|
(91) искать так-то по коду программы проще по имени функции, а не имени константы
Исправлять проще |
|||
|
98
ZloyBrawler
28.11.25
✎
14:44
|
(95) "люблю" Экономистов слов, что потом код не читабелен ибо смысла у всех этих огрызков названий нет
|
|||
|
99
Волшебник
28.11.25
✎
15:06
|
(94) русское "Получить" сильно длинее английского get
|
|||
|
100
formista2000
28.11.25
✎
15:07
|
(100) 100!
|
|||
|
101
Timon1405
28.11.25
✎
15:10
|
(99) у нас есть "дай"
|
|||
|
102
Волшебник
28.11.25
✎
15:15
|
(101) у нас есть даже такое: "давай бери"
|
|||
|
103
MWWRuza
гуру
28.11.25
✎
15:21
|
(99) А "Пол" - не? И так понятно, что "Пол" в имени функции это не гендерная принадлежность, а "Получить" :-)
|
|||
|
104
Гипервизор
28.11.25
✎
15:23
|
(103) Ой, фу. И будет что-то типа ПолПечФормДокРТИУ.
|
|||
|
105
Chai Nic
28.11.25
✎
15:26
|
(94) А с каких пор джава является образцом стиля? Это уродливый язык изначально.
|
|||
|
106
VladZ
28.11.25
✎
15:31
|
(105) Возьми любой другой язык.
|
|||
|
107
VladZ
28.11.25
✎
15:33
|
(104) Вот так точно не надо.
|
|||
|
108
Волшебник
28.11.25
✎
15:37
|
(103) Лучше называть функции существительными по результату, который они возвращают. Получится примерно так:
Функция УпаковочныйЛист() Экспорт ТД = Новый ТабличныйДокумент; ... Возврат ТД КонецФункции вызов: ТД = оКоробка.УпаковочныйЛист(); ТД.Показать(); |
|||
|
109
dmt
28.11.25
✎
15:39
|
(108) Тут непонятно, что за упаковочный лист возвращаем, может ссылку на документ или макет.
ПечатьУпаковочныйЛист() лучше |
|||
|
110
АгентБезопасной Нацио
28.11.25
✎
15:48
|
(104) ПечформаРТИУ() - почему бы и не да? (и так понятно, что РТИУ - документ, и что печформу можно по умолчанию только получить). Но все равно как-то ....
|
|||
|
111
Волшебник
28.11.25
✎
15:59
|
(109) можно и так
или по-венгерски: Функция тдУпаковочныйЛист() Экспорт |
|||
|
112
Chai Nic
28.11.25
✎
16:00
|
(109) ПечатнаяФормаУпаковочногоЛиста() и никак иначе
|
|||
|
113
vicof
28.11.25
✎
16:04
|
(112) +1
|
|||
|
114
Garykom
гуру
28.11.25
✎
16:10
|
(112) Плохо
Может быть несколько разных печформ упаклиста Как их различать? Удобнее когда разница в конце Поэтому объект суем вперед, и добавляем глагол для понятности: СформироватьУпаковочныйЛистПечатнаяФормаФормат2025() |
|||
|
115
vicof
28.11.25
✎
16:12
|
(114) +2
|
|||
|
116
dmt
28.11.25
✎
16:21
|
(114) ПечатьУпаковочныйЛист_2025()
|
|||
|
117
Волшебник
28.11.25
✎
16:27
|
(114) тогда так: СформироватьУпаковочныйЛист("Формат2025")
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |