0. fixin 3901 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 3901 16.03.12 17:21 Сейчас в теме
(7) отличаются в инициализации, но не в доступе к ячейке i,j
9. Magister 133 17.03.12 14:25 Сейчас в теме
(7) Вопрос в том, насколько широкой должна быть возможность изменения поведения.
Целесообразность должна определяться конкретной задачей, нет "серебрянной пули" на все случаи.
(0)
Единственно, нужно учитывать, что объектно-ориентированный подход в нашем случае нужно применять там, где прозрачность и понятность разработки важнее быстродействия, т.к. методы интерпретатора Выполнить все же медленнее скомпилированного кода 1С.

Не факт. Я не знаю внутренностей метода "Выполнить", но следуя здравой логике - замедление не должно быть сколько-нибудь заметным. Ведь сам код находится внутри функции вызываемого метода, и никто не мешает выполнять его скомпилированным. Замедление будет только на этапе самого вызова функции, и то не факт.
Другое дело если передавать в "Выполнить" не имя функции, а сам программный текст - тогда да, замедление будет.
6. fixin 3901 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 3901 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С:Документооборот
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:Бухгалтерии
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:ЗУП
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день

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