0. fixin 3882 14.03.12 11:26 Сейчас в теме

Эмуляция ООП в 1С8

Скорее экспериментально-теоретическое, чем практическое руководство по использованию ООП В 1С8.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. itar59 87 14.03.12 11:26 Сейчас в теме
Спасибо! Очень поучительно!
2. saiten 227 14.03.12 14:07 Сейчас в теме
Я подумал было, что и впрямь объектно-ориентированный подход к эске кто придумал... :)
3. aim 14.03.12 15:38 Сейчас в теме
ООП создавалось не ради классов, наследований, перегрузки, конструкторов/деструкторов. Нет, -- оно ставило задачи повторного использования кода и улучшения читаемости/сопровождаемости миллион-строчных программ. В те же годы предпринимались усилия для анализа и структурирования кода программ (открытые-закрытые члены, модель документ-представление и т.д). Криво спроектированная система классов (ООП) способна действовать в направлении, обратном вышесказанному. Хотя возможно будет радовать создателя -- "могу же! ведь ООП же!"
RomanRomans; item; +2 Ответить
4. SiAl 72 14.03.12 23:04 Сейчас в теме
А для чего? Стандартных классов, типа справочники, документы, перечисления - не хватает?
5. Magister 133 15.03.12 02:02 Сейчас в теме
(4) Автор хороший пример привел - списание по партиям.
Вспомните, неужели у вас не было случаев, когда похожие (но таки разные!) алгоритмы использовались в разных местах? Да, можно это совместить в одну процедуру, которая будет менять своё поведение в зависимости от переданных параметров. Но намного удобнее сделать один класс со "стандартным" поведением, и несколько производных, с частично измененным.
7. SiAl 72 16.03.12 15:02 Сейчас в теме
(5) намного удобнее? ИМХО: вряд ли. Создание сущностей без их явной необходимости.
(6) Методы чего? Чтение через OLE и ADO отличаются и немало.
8. fixin 3882 16.03.12 17:21 Сейчас в теме
(7) отличаются в инициализации, но не в доступе к ячейке i,j
9. Magister 133 17.03.12 14:25 Сейчас в теме
(7) Вопрос в том, насколько широкой должна быть возможность изменения поведения.
Целесообразность должна определяться конкретной задачей, нет "серебрянной пули" на все случаи.
(0)
Единственно, нужно учитывать, что объектно-ориентированный подход в нашем случае нужно применять там, где прозрачность и понятность разработки важнее быстродействия, т.к. методы интерпретатора Выполнить все же медленнее скомпилированного кода 1С.

Не факт. Я не знаю внутренностей метода "Выполнить", но следуя здравой логике - замедление не должно быть сколько-нибудь заметным. Ведь сам код находится внутри функции вызываемого метода, и никто не мешает выполнять его скомпилированным. Замедление будет только на этапе самого вызова функции, и то не факт.
Другое дело если передавать в "Выполнить" не имя функции, а сам программный текст - тогда да, замедление будет.
6. fixin 3882 15.03.12 05:56 Сейчас в теме
(4) например, задача чтения из Эксель. Можно читать через OLE-объект, через ADO, через свои ВК. Но методы остаются одинаковыми.
10. BorisMor 304 20.03.12 21:11 Сейчас в теме
Плюс за то что заставляет 1С-программистов задумываться о том чего не хватает.
Лично мне ООП не хватает больше всего. Хоть и есть в 1С различные модули, но структурирование логики программы дается с большим трудом. А большинство вообще не забивают голову и превращают программы на 1С в мешанину функций и процедур.
11. krv2k 368 30.03.12 18:50 Сейчас в теме
12. aim 04.04.12 16:31 Сейчас в теме
какие-то классы надуманные.
Я бы начал с того, что создал класс, например, "счет10", -- который умеет приходовать на этот счет, и списывать с него (при списании умееет посчитать остатки). Если надо -- сделает это в налоговом плане счетов, если надо в бухгалтерском.
"Выше" идет класс "проводка10_60", который соединит "счет10" и "счет60"(умеет считать авансы). При создании (в конструкторе) они обменяются настроечной информацией (все ли поля заполнены и т.д.). Есть "проводкаНДС", котороый считает НДС.
Ещё "выше" -- класс "документ" и.д. В принципе, класс "документ_ручная_проводка" должен быть базовым для всех "документов", но может вызываться самостоятельно.
Что-то из вышесказанного можно реализовать через "модуль менеджера".
13. fixin 3882 04.04.12 17:58 Сейчас в теме
(12) вы бредите. есть объект счет, он более универсальный чем счет 10 и счет 60.
14. aim 05.04.12 07:46 Сейчас в теме
Я что-то писал об "универсальности"?
О каком-таком "универсальном объекте счет" идет речть? Оба объекта "счет10" и "счет60" придумал пока я :)
15. aim 05.04.12 08:00 Сейчас в теме
"бредите..."
Не надо сильных слов, тем более при создании чего-то нового, неизведанного; тем более при "мозговом штурме".
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 130 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист/Cтарший программист 1С
Москва
зарплата от 100 000 руб. до 250 000 руб.
Полный день

Программист 1С
Калининград
зарплата от 60 000 руб. до 80 000 руб.
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день