|
Немного про общие функции в типовых. Их постоянное изменение | ☑ | ||
---|---|---|---|---|
0
Beduin
07.04.20
✎
15:21
|
Каждый сталкивался я думаю. Пишешь доп. функционал, используешь типовые вызовы, чтобы не городить велосипеды. Приходит новый релиз и все твое летит к чертям.
Вариант не использовать возможен, но это усложнит разработку и не факт, что потом эта самописная логика подойдет для следующего релиза. Сравню с android. Программа созданная под самую древнюю SDK гарантированно выполнится на новом версии SDK. Почему у 1С нет никакой совместимости по общим функциям конфигурациям? И как избежать проблем с разработками созданными под старый релиз, чтобы новый релиз все не ломал. Может рекомендации какие есть. |
|||
1
H A D G E H O G s
07.04.20
✎
15:23
|
Пишите свое базовое ядро.
|
|||
2
Ненавижу 1С
гуру
07.04.20
✎
15:50
|
(0) смириться, у 1С не в почете обратная совместимость
|
|||
3
VladZ
07.04.20
✎
17:17
|
(0) Делай свою "прослойку" между твоими объектами и типовыми процедурами БСП.
|
|||
4
RoRu
07.04.20
✎
17:21
|
отвечу бессмертным ))) :
Дорогой Иван. Ты и вправду болван. Это я - … … . Знаешь, я так долго не отвечал, потому что от тебя пришло так много писем, и я посчитал, что это спам. wink Давай по порядку. Нет программы, которая всем по вкусу, ты б лучше сходил бы на курсы, немного развился, хоть чему-нибудь научился. Ты говоришь – исправь глюки. Да это всё твои кривые руки. Говоришь, серевер повис, да у вас там явно проблемы с железом, причем тут релиз? (С) PR-MEX письмо директору или песня про 1с |
|||
5
Beduin
07.04.20
✎
17:29
|
(3) Это еще хуже будет. Тип какой-нибудь поменяется в переменных и переписывай всю функцию. Или логика. Хочется универсальный механизм. 1С сейчас не изучаю сильно, поэтому интересно услышать совет, кто на курсы ходит какие-то. Как методически советуют делать в этом случае.
|
|||
6
vde69
07.04.20
✎
17:34
|
2013 год http://catalog.mista.ru/public/190375/
Что можно сделать: а. БП (Библиотека подсистем) - библиотека процедур функций и переопределяемых метаданных, данная библиотека должна быть хорошо задокументирована, отлажена и редко изменятся, для того что бы она стала неким расширением языка и все ею пользовались. А почему нельзя все это запихнуть в язык? Да по тому что в процедуре языка нельзя реализовать работу с метаданными которых еще нет (например, нельзя в функцию поместить две валюты и число а на выходе получить пересчитанную сумму), причем обновление этой библиотеки должно идти отдельно от обновление конфигурации. |
|||
7
Dedal
07.04.20
✎
17:34
|
(5) Вы сравниваете теплое и мягкое. Твоя доработка скорее всего будет работать с версии платформы 8.2 до последних 8.3. А вот если разработчик приложения на Андройде поменяет API внутри своей программы то и тебе придется переписывать свое обращение к этому API. Аналогично и у 1С. Разработчик конкретного приложения поменял у себя внутри, SDK этого даже не касается.
|
|||
8
Beduin
07.04.20
✎
17:38
|
(7) Я под одно приложение как качнул БЕСПЛАТНУЮ библиотеку, написанную на java, так за 3 года все функции оттуда работают. Ни одна не поменялась. Я понимаю, что 1С не дает стандарт на свои общие модули, но они сами не задалбываются каждый раз переписывать вызовы? Мне на первом курсе еще в универе объясняли, проектируйте функцию, чтобы потом не менять ее годами, так как на нее потом будет ссылаться куча мест.
|
|||
9
vde69
07.04.20
✎
17:44
|
(8) вопрос не в изменении а в отсутствие описаного интерфейса взаимодействия, например в С есть отдельные файлы заголовков *.h
именно такого интерфейса не хватает |
|||
10
acht
07.04.20
✎
17:54
|
(9) На уровне библиотек типа БСП и пр. такое есть - области "ПрограммныйИнтерфейс" и "СлужебныйПрограммныйИнтерфейс", это как раз оно: public и private. Там и в стандарт есть о комментариях, об устаревании.
Типовые же конфы библиотеками не являются, у них все служебное, все внутреннее. А тащить совместимость специально для сторонних пустынных разработчиков, оно нафиг не надо. |
|||
11
pechkin
07.04.20
✎
17:55
|
(0) А теперь сравни с js
|
|||
12
Провинциальный 1сник
07.04.20
✎
19:04
|
Да. Использовать функции общих модулей так же опасно при доработках, как и обращаться непосредственно к данным. Разработчики не гарантируют и не обещают стабильного кода. Любые изменения и доработки могут сломаться при любом обновлении. Понимаете в чем дело - штатные программисты организаций, использующих решения 1с для самой фирмы 1с не нужны и в их эргономике никто не заинтересован. Ибо если решения будут дорабатываться просто и стабильно своими силами, то нафига нужны партнеры, имеющие доступ к кухне?
|
|||
13
Azverin
07.04.20
✎
19:57
|
(0) тоже бесит, работало бы годами, но нет...
недавно в БП 3.0 в НомерНаПечать() добавили, например, третий параметр. круто, чё) |
|||
14
Мимохожий Однако
07.04.20
✎
20:01
|
(0) ОФФ: 1С заботится о программистах. Чтобы всегда на хлебушек было.Я к тому, что радуйся, когда позовут поправить. А если есть сомнения-делай свой модуль и пихай во все свои разработки.
|
|||
15
Злопчинский
07.04.20
✎
20:13
|
ну и я часто добавляю параметр "третий" у себбя, в клюшках. только делаю его необязательным или со значением по умолчанию и код написан так, что и на старых будет работать.
давно же известно что типовые пишут таджики. х-х-ивпродакшен |
|||
16
rsv
07.04.20
✎
20:31
|
(0) вывод прост . обработка должна быть автономна и зависеть токма от данных в табличках
|
|||
17
Garykom
гуру
07.04.20
✎
20:40
|
(0) Делай свои переопределения всех используемых БСПшных функций. И используй только их.
Если что в своей реализации "переопределения" поправишь, добавишь там параметр или свое напишешь скопипастив из старого релиза типового. Да отлаживать это будет сложнее, количество вызовов вложенных увеличится. |
|||
18
Конструктор1С
07.04.20
✎
20:44
|
(0) делай компактные процедуры-мосты между твоей логикой и типовыми общими модулями, и будет тебе щасте
https://ru.wikipedia.org/wiki/Мост_(шаблон_проектирования) |
|||
19
Сияющий в темноте
07.04.20
✎
21:31
|
вы лучше вспомните переход с 13 на 14 платформу
управляемаяформа - формаклиентскогоприложения тоже ведь никому не мешало. ну и под windows можно программировать со старым Api еще от windows nt. |
|||
20
lodger
07.04.20
✎
21:46
|
(0) как в том анекдоте про "готовь 3 письма", берешь и пишешь 4 своих общих модулей, с разными свойствами (клиент, сервер, клиентсервер, Серверный для вызова с клиента), потихоньку шпигуешь их своими велосипедами для своих разрабулек, пихаешь везде где надо. корячить поддержку или лепить это в расшрирении - дело хозяйское.
|
|||
21
Злопчинский
07.04.20
✎
21:48
|
(16) "обработка должна быть автономна и зависеть токма от данных в табличках"
- то есть каждому пилить свой личный велосипед? я и в клюшках не суперспец, и то насмотрелся жуткого трэша который народ пишет а) по незнанию типовых (как профедур/функций так и возможностей б) просто пготому что неспецы, а система сложная. . я просто представляю что будет если в 8-ке начнется такой же трэш и угар. |
|||
22
Злопчинский
07.04.20
✎
21:49
|
(17) "Да отлаживать это будет сложнее, количество вызовов вложенных увеличится." - по тому как народ охреневает от количества вложенности в типовых - тебя точно услышали! ;-)
|
|||
23
lodger
07.04.20
✎
21:54
|
(21) ага, например - почтитиповая конфа плюс внешняя обработка. и в каждой по своему сделано округление копейки для ндс при частичном списании со счетов. получается типовой алгоритм раз, нетивой документ два, внешняя обработка колбасит три.
потом бухи сидят и седеют. |
|||
24
ildary
08.04.20
✎
00:58
|
(0) "Вы не умеете их готовить" - надо просто помнить, что использовать надо процедуры и функции, которые хранятся в области ПрограммныйИнтерфейс - их трогают в последнюю очередь (смена мажорной версии БСП) и то трогают с сохранением старой функции и созданием новой (с похожим именем). Вызывать функции из области СлужебныеПроцедурыИФункции - стоит только совсем уж по дикой нужде (и быть готовым что сломается), а из области СлужебныеПроцедурыИФункции брать нельзя от слова вообще - там колбасится всё постоянно. Источник этих знаний - бывший разработчик БСП.
|
|||
25
victuan1
08.04.20
✎
05:35
|
(13) В 1С 7.7 (аналог 8-го БСП = гл.модуль) обычно такой проблемы нет. Экспортные ф-ии гл. модуля конкретной конфигурации годами остаются совместимыми со старыми релизами.
Но бывают и исключения. Например, добавили когда-то в ТИС новый реквизит для Валюты - Кратность. И добавили доп. параметр в некоторые экспортные ф-и гл. модуля. Пришлось в своей нетленке выкручиваться через Шаблон, чтобы учесть разное кол-во аргументов гл. ф-ии в зависимости от версии релиза. Примерно вот так: Пост.СуммаВзаиморасчетов = число(Шаблон("[глПересчет(Пост.Итог(""Сумма"")"+?(глЕстьРеквизитШапки("СуммаВклНП",ВидДок)=1,"+?(Пост.СуммаВклНП =1,0,Пост.Итог(""СуммаНП"" ))","")+?(глЕстьРеквизитШапки("СуммаВклНДС",ВидДок)=1,"+?(Пост.СуммаВклНДС=1,0,Пост.Итог(""СуммаНДС""))","")+ ",Пост.Валюта,Пост.Курс,Пост.Договор.ВалютаВзаиморасчетов,Пост.ДатаДок"+?(глЕстьРеквизитШапки("Кратность",ВидДок)=1,",Пост.Кратность","")+")]")); |
|||
26
Конструктор1С
08.04.20
✎
12:17
|
(25) ужаснейший код
|
|||
27
Lexandr
08.04.20
✎
12:39
|
Пару лет назад надо было добавить печатную форму к документу в УТ11. Вдруг оказалось, что код подключения в список печати зависит от версии БСП. С тех пор очень уважаю внешние печатные формы.
|
|||
28
rudnitskij
08.04.20
✎
13:15
|
(5) "1С сейчас не изучаю сильно, поэтому интересно услышать совет, кто на курсы ходит какие-то" - ты сам себе на вопрос и ответил, только не понял этого еще...
Типовые, как правило, пишет не 1С, а сторонние фирмы. Поэтому претензии к 1С в этой сфере не по адресу. Лично я сталкивался с тем, что функции и процедуры, которые можно отнести к универсальному доп функнционалу, мало того, что меняют логику работы периодически, но иногда еще и название, список аргументов, а временами еще меняется модуль, в котором они находятся. Фирма БМВ не виновата, что на ней долбоклювы ездят. Так же и 1С не виновата в том, что пишут большие фирмы, создающие типовые решения |
|||
29
Beduin
08.04.20
✎
13:25
|
(28) Я вообще в сабже про бухгалтерию 3.0 писал.
|
|||
30
1Снеговик
гуру
08.04.20
✎
13:51
|
Все, кто оправдывает пейсателей типовых конфигураций, объясните еще пару моментов.
Обновил тут на выходных УТ 11 за год и запарился потом расширение переписывать. 1. Переименовали ВСЕ макеты печатных форм, добавили в конце имени "_ru" Это что за необходимость разделения макетов по языкам? Готовятся во все типовые добавить макеты на разных языках? А оно нам надо теперь весь написанный код под это подстраивать? И зачем нам в типовой 100500 одинаковых макетов, но на разных языках? 2. Выпилили просто напрочь эквайринг от Сбербанка, который работал год назад, а именно общий модуль и общую форму. Эквайринг просто перестал работать, драйвер не подключается ни в какую, то он не найден, то ошибки при тесте связи. Третий день решаем проблему, вроде удалось вернуть объекты из старой конфы, но что это было, и почему больше никто не возмущается? У всех все работает, а вот именно нам не повезло? 3. Переименовали в аналитике учета номенклатуры РЕКВИЗИТ "Склад" на "МестоХранения", соответственно все отчеты и обработки, которые работают с регистрами накопления по движению номенклатуры просто перестали работать. Гениально! 4. Во многих печатных формах просто перестал выводиться номер на печать, он просто пропал в данных печати, вместо номера пустая строка. Вот делать нечего разбираться в их мега запросах и ловить ошибку, или срочно городить костыли, потому что работать людям надо уже сейчас. Плюс переименования процедур в общих модулях и самих общих модулей. А всего год прошел. После каждого обновления готовишься к бессонным ночам исправления глюков, поэтому год и откладывал, но тут пришлось. Это уже не говоря о глючной платформе, каждый раз при обновлении сюрпризы, одно лечат другое калечат. 8.3.15 была супер глючная, в 8.3.16 тоже с приколами. Взяли поломали механизм сравнения конфигураций еще кажется с 8.3.15, кому жаловаться и сколько ждать исправления непонятно. Извините, крик души. |
|||
31
ildary
08.04.20
✎
13:54
|
(30) Самое забавное, что после всего этого 1С спрашивает у народа "а почему молодые разработчики не хотят писать на 1С?" - потому что не понимает, почему?
p.s. Я их не оправдываю, особенно переименования "потому что можем". |
|||
32
palsergeich
08.04.20
✎
13:56
|
(30) Мама тебя так кормит, если бы все работало годами и не отваливалось, мы быхуже кушали
|
|||
33
acht
08.04.20
✎
13:57
|
(30) > После каждого обновления готовишься к бессонным ночам исправления глюков, поэтому год и откладывал
Интересная логика. |
|||
34
Cyberhawk
08.04.20
✎
13:58
|
Большого слона (долго пропущенное обновление) надо есть кусочками (обновлять потихоньку и чаще)
|
|||
35
1Снеговик
гуру
08.04.20
✎
13:59
|
(32) кстати теперь пользователь и типовую обновить не может без приколов. Теперь прилетают автоматически патчи, ставятся как расширения, которые мешают дальнейшим обновлениям) Тут даже программист со стажем в ступоре от ловли новых невиданных ошибок при обычных обновлениях)
|
|||
36
Злопчинский
08.04.20
✎
14:13
|
(30) Вот поэтому я сижу на стабильной 7.7.
мну откровенно ломает заниматься тупой работой, типа как ты описал. |
|||
37
Beduin
08.04.20
✎
15:38
|
(33)(34) А теперь представляете лицо клиента. Когда ему внешняя компания прикрутила к типовой бухгалтерии разработок на 5 лямов с помощью расширения. И заверило, что обновления будут без проблем. Приходит обновление и новый счет миллиона на 2. Заказчик в шоке и орет, что все обманщики.
|
|||
38
Garykom
гуру
08.04.20
✎
15:48
|
(37) Ну пусть догадается что надо было нанять своих программистов на фикси.
|
|||
39
acht
08.04.20
✎
16:11
|
(37) И кто же в этом виноват?
|
|||
40
Cyberhawk
08.04.20
✎
18:16
|
(37) А зачем мне его представлять?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |