Про 1С++ООП, на ночь глядя бесстыжими вочами

Автор Пиит, 05 апреля 2024, 00:58

« назад - далее »

Как Вы относитесь к Истории к контексте данного форума?

Пишите, коллега, история это всегда интересно
6 (75%)
Мне по барабану
0 (0%)
Хватит уже, чувак, расвешивать здесь свои простыни
2 (25%)

Проголосовало пользователей: 8

Пиит

Перед тем, как разобрать пример вложения форм документов, хочу сказать пару слов об этом прикладном объекте, рассмотреть его, как говорят, под лупой.

Наряду со Справочником, Документ давно кочует из одной версии платформы в другую.
Я работал с v6 и не знаю, каким Документ был раньше, но суть его с тех пор так и не поменялась.
Продекларировав в своё время принцип учёта "от первичного документа", Компания стала заложником
этой идеи, а такой принцип ведь изначально был тупиковым.

Это не трудно понять, взглянув на список видов документов в вашей конфигурации.
Что это за первичные документы - ВводНачальныхОстатков, НачислениеАмортизации, ЗакрытиеМесяца?
Может, у нас есть такая первичка как ОС-1 и ОС-2? Нет, вместо него ПоступлениеОС и ПеремещениеОС.
Может, у нас есть ТТН? Нет, вместо него ОтгрузкаТоваров. А где вообще Договора?

Дело в том, что в Документ попытались вложить две совершенно разные сущности, ПервичныйДокумент и ХозяйственнуюОперацию. В действительности у них мало что есть общего, разве что Номер и Дата, и тот и другой хотят нумеровать и видеть в хронологическом порядке.

Я таки восстановлю правильную терминологию, красоты ради, и далее буду называть ПервичныйДокумент Документом, а ХозяйственнуюОперацию Операцией, только пожалуйста, прошу не путать её с БухгалтерскойОперацией, о ней чуть ниже.

Документ действительно есть отражение в учете документа первичного, со своими уникальными категориями (входящий, исходящий, ...), состояниями (на подписи, подписан, подшит, ..), и другими свойствами, о которых лучше расскажет специалист по документообороту. Наконец, все Документы обычно разложены по папкам, чего порой так хочется видеть в окне Предприятия. Попытка реализовать Документооборот на Справочниках это тяжелая задача, взять хотя бы отбор за период, нам подобные индексы не доступны, но в принципе-то, между Документами и Справочниками гораздо больше общего, чем с Операциями. И те, и другие есть элементы, предназначенные для хранения условно-постоянной информации.

Операция же, в свою очередь, есть отражение в учёте хозяйственной операции предприятия, событие, точка пространственно-временного континуума, если хотите, в результате которого что-то должно измениться в наших учетных регистрах. Тот самый Регистратор, которого никто не видел, но он есть. В том числе и первичных документов, и может менять их состояния. Зачастую Операция даже не знает, с каким видом Документа ей придётся иметь дело. Так при ОтгрузкеТоваров, может быть оформлена как форма ТТН, так и форма ТН*, опять же дилема...

Короче, Документ и Операция должны быть разделены в разные прикладные объекты.
Совмещение этих сущностей в одном флаконе уже привело к парадоксальным (я бы даже сказал крепче, но вдруг кто расстроится) ситуациям. Так, стало в порядке вещей определять ВидСубконто типом Документ. Оно вроде "а почему бы и нет"? Но когда в собственной БухгалтерскойОперации Документ проводит самого себя, я отказываюсь принимать такой учёт. Эта рекурсия имхо на грани профпригодности. И это делают не где-нибудь в Малорите, а там, наверху, в типовых конфигурациях. А что, ручные операции уже отменили? Или ввод начальных остатков уже не актуален, все кому надо уже ввели?

Так вот, далее в моём конфигураторе Документ и Операция это разные прикладные объекты.
Моя v78, что хочу, то и делаю.
И Компании рано или поздно придётся навести порядок в своей идеологии.
Что касается БухгалтерскойОперации, здесь я в общем согласен с работодателем, особой необходимости в ней не вижу, поскольку Проводки уже сами умеют разбегаться по разным периодам...

Пиит

Регистратор, блин. Ну и слово придумали.
Подхожу вот я к бухгалтеру к грю: "ну-ка, Валя, создай-ка новый регистратор", а у неё прям очки с ушей, а я такой: "да ты чё, лошара, учи матчасть, они ж регистры двигают, понимать надо!".

Вот, другое дело, история, как Че стал однажды недобрым человеком.
Жил-был парень, молодой и добродушный, лезли к нему все, помоги да помоги, ты же добрый, ты же
Чебурашка, а он, добрая душа, и помогал, а на стотысячный раз подумал, а че это я им всем помогаю-то, а они вон сидят, чай пьют и ржут, с меня наверное, и вот подошёл как-то раз один коллега, помоги грит тут, Чебурашка, в конфигураторе, ты же добрый... и тут родился ОН, встал, взял коллегу за лицо, и херась об стол, херась, херась, и приговаривает, Чебуратор я, сука, Чубуратор, и пендаля в догонку...

Я вообще поражаюсь, какие дебилы в Компании за названия своих гаджетов отвечают.
Взять вот, объект Периодический. Они в школу вообще ходили то? У меня пальцы не слушаются кнопки такие жать. Я ж с синусами на ты. Какой нах курс Периодический, когда он всё время вверх растёт?
Ну, назови Хронологический. Бугага. Че, хроны типа некрасиво? Ну тогда мот ВремяЗависимый.
Тож не катит? Как у вас в книжке там, "условно-постоянные"? Вот, БезУсловноНеПостоянный тогда.
Не, один взял пернул "периодический", и все такие, ага, звучит, берём, молоток, премия. Придурки.

А вот, Таблица. В программе, которая работает с БД, назвать такую херню таблицей?
У нас тут чё, таблиц мало? Не, этож другое. Та вон - ТаблицаЗначений у нас, а вон эта, сбоку которая, ТабличнаяЧасть называется, а ещё вверху есть -  Многострочная.
А в Базе у вас ессесно, РеляционнаяТаблица?
Это как понять? Эксель навеял? На табличный процессор смахивает? Так навовите ШахматноеПоле, E2E4, или МорскойБой, там такая же херня.

Агрегатные типы данных, этож вообще новое слово в науке. В механике тока.
Я вон как сказанул "агрегат", программисты поперхнулись, с такими гаджетами только на мехдвор.
Это чево такое? Может, таки Классы?
Не, какие Классы, ты чё, газет не читаешь, у нас не какой-нибудь ООП, у нас Предметно-Ориентированое!
- Пипец как круто звучит.
- Концепция, брат.
- А че за концепция-то?
- Концепция, брат.
- Так объясни толком.
- Концепция, брат...


Нет никакой концепции. Чтобы говорить о концепции, нужно начинать с терминологии.

Ну, а если в гугле поискать, конечно, можно и диссертации найти,
по теме "Концепция 1С в контексте хронологических таблиц".

Надо ник поменять.

Пиит

...Когда благому просвещенью
Отдвинем более границ,
Со временем (по расчисленью
ФилософическихТаблиц*,
Лет чрез пятьсот) дороги, верно,
У нас изменятся безмерно:
Шоссе Россию здесь и тут,
Соединив, пересекут.
Мосты чугунные чрез воды
Шагнут широкою дугой,
Раздвинем горы, под водой
Пророем дерзостные своды,
И заведёт крещёный мир
На каждой станции трактир...


Люблю поэзию, как красивый код.
Красавчик Александр Сергеевич. Ас.
Первый программист на Руси, такого накодировал, дай Бог пережить нам всем.

Никак вот ник себе не мог подобрать.
Буду Пиит, чуток математики, чуток информатики.

Не занят ещё? Может, есть уже в какой мисте известный персонаж?
Не перенесу ещё один удар от классиков.

Встречайте.

Отчего иной поэт
Жаждет столь внимания?
Это, братцы, не секрет -
Есть такая мания:
Вечерами, сняв портки,
Побродить околицей,
Чтоб плевались мужики
И смущались школьницы...





* Имеется в виду книга французского статистика Шарля Дюцена (1784-1873)
"Производительные и торговые силы Франции", где приведены данные о состоянии
экономики европейских стран, в том числе и России.

trdm


Пиит

Теперь могу рассмотреть вложение объектов и форм на примере ОтгрузкиТоваров и ТТН.

В прошлый раз я разделил ДокументV7 на два различных прикладных объекта конфигурации,
непосредственно Документ, со знакомыми нам НомерДок и ДатаДок, у которого я изъял функцию
регистратора в привычном нам понимании, и Операцию, как регистратор хозяйственной операции, со
знакомыми нам НомерОперации и ДатаОперации, благо от БухгалтерскойОперации я, как и Компания,
отказался, но, как видите, вовсе не изгнал этот термин из конфигурации, а напротив, "повысил в звании".

Вначале рассмотрим ТТН. Классический документ, с массой собственных реквизитов как шапки - Грузополучатель, ВремяРазгрузки, так и табличной части (нашей Таблицы из соответствующий ветки метаданных ТипыДанных) - Товар, Цена, МассаГруза, КолГрузовыхМест, Примечание и т.д.
Здесь всё вроде понятно. В v8 такая струткура могла бы быть вполне и элементом справочника. Но нет, а на кой тогда прикладные объекты в принципе нужны? Эта сущность вполне себе востребована.
Мы можем предварительно создать ТТН в ЖурналеДокументов и положить его на стол.
Здесь может быть вопрос из зала "и это всё, а где проводки на?"

Переходим в ЖурналОпераций. Или, что более удобно, на основании нашей ТТН создаем Операцию ОтгрузкаТоваров, и видим ... привычную для нас Форму отгрузки товаров, в шапке поля НомерОперации и ДатаОперации, снизу кнопка Провести, а между ними практически всю остальную форму Операции занимает область формы нашего Документа ТТН.
И эта вложенная форма совсем не в режиме ТолькоПросмотр, пожалуйста, можете подправить при необходимости всё, что угодно.
Бред, скажете вы? Нет, это вложение Объектов и их Форм.

Более того, мы могли бы и не создавать Документ ТТН предварительно, а сразу в ЖурналеОпераций создать новую Операцию ОтгрузкаТоваров, и оформлять ТТН уже непосредственно в Форме Операции, почему нет?
ПриЗаписи Операции мы создаем одновременно с ней самой ещё и Документ, как Документ в свою очередь ПриЗаписи создает новую ТаблицуОтгрузкиТоваров в соответсвующих ей таблицах БД.

Конечно, вы скажете здесь, что это разные вещи. Таблица-то есть ТипДанных, пусть и составной, а с Документом, как и с Элементом справочника нельзя вытворять такие фокусы, создавать его из другоо объекта, ссылочная целостность там и всё такое, и что же будет, если отменить проведение.

Вот здесь и следует рассмотреть поближе, что же такое Регистратор, и можно ли это слово писать с большой буквы...

Пиит

Цитата: Пиит от 14 апреля 2024, 07:11Вот здесь и следует рассмотреть поближе, что же такое Регистратор,
Перед тем, как определить место для слова "регистратор" в нашем словаре, нужно немножко копнуть.

Что такое "ссылка"?
Является ли Ссылка сама по себе у нас отдельной сущностью?
В языках, в общем, есть такой тип данных, указательный, и там имеет право на жизнь.
А в базах данных, где практически любая запись в таблице имеет свой уникальный идентификатор, вне независимости от "ссылочной целостности" и идеологии Компании, что такое ссылка?
А в концепции ООП, где кажный объект априори раскладывается по заранее неведомым объемам и закоулкам на просторах оперативной памяти, и без ссылки на него собственно концов не найдёшь, это что, что-то особенное?

Вот здесь Компания имхо и нагородила в v8 очередное не до разумение.
В v78 Ссылка - это фундаментальное свойство любого ТипаДанных, вертикально интегрированное понятие, и в списке ТиповДанных конфигурации вы не найдёте такой ветки.

Конструируя любой объект, Справочник, Документ и т.п., у вас нет нужды ломать голову, Ссылку вы хотите добавить в список реквизитов, или Объект. Любой Объект, добавленный в ваш список, будет иметь ссылку, а любая ссылка позволит вам использовать ее Объект для своих целей.
Здесь Форма, как это ни странно, имеет определяющее значение для поведения Машины, а ваша задача - заниматься моделированием сущностей, не отвлекаясь на такие головоломки.

Таким образом, один и тоже Реквизит можно разместить на Форме и как Ссылку, и как Объект, в зависимости от целеполагания, а уже Машина либо будет блокировать вложенный Объект в базе данных, либо в этом не будет необходимости.

Помимо Ссылки, есть ещё одно фундаментальное свойство любого Объекта/ТипаДанных, я назову его Владелец, несмотря на то, что Компания так же очень любит это словечко. А мы не будем путаться в терминах Владельцев и Родителей, оставим таки слово Родитель таким, как оно используется в ООП, для Классов и наследования.

Итак, Владелец - это фундаментальное свойство Объекта/ТипаДанных, ссылка на конкретный вышестоящий Объект/ТипДанных, которому сам объект принадлежит всецело, и не может принадлежать одновременно другим Объектам/ТипамДанных.
Это относится конечно в первую очередь к нашей ветке ТипыДанных.
Для сложных Определяемых ТиповДанных, начиная со Структуры, для Массива, Списка, Таблицы и т.п., Объект является Владельцем для соответсвующих записей в таблицах БД, и кроме как своему Владельцу, они больше то никому и не нужны. Как вот ТабличнаяЧастьV7, кому она здалась, кроме как своему ДокументуV7? Ессесно, все эти записи должны иметь и ссылку на объект-владелец.
И все они создаются и удаляются вместе со своим Владельцем, а Владельцем может быть не только ПрикладнойОбъект, но другой ТипДанных, поэтому при блокировках и транзакциях следует рассматривать целое дерево вложенных объектов.

И Ссылка, и Владелец не подлежат изменению ни в Предприятии, ни кодом в Конфигураторе, это, повторюсь, фундаментальные свойства для связи Объектов и таблиц, предназначены для исполняющей Машины, но могут быть получены в любом объекте "для чтения", как-то Объект.Ссылка и Объект.Владелец соответсвенно.

Есть в конфигурации Объекты, для которых Владелец может быть не указан, или указан как ссылка, некий ГУИД КорневогоОбъекта конфигурации, над этим надо ещё подумать.
Это в первую очередь ПрикладныеОбъекты -Справочник, Документ и.д.
Вот ним и относится в полное мере правило "ссылочной целостности"...

Пиит

Беда, ребята, похоже профукал таки я свои тетрадки.
А память уже не та, боюсь, разложение МетаКлассов по таблицам уже и не восстановлю.

Пиит

Цитата: Пиит от 14 апреля 2024, 09:52Это в первую очередь ПрикладныеОбъекты -Справочник, Документ и.д.
Вот ним и относится в полное мере правило "ссылочной целостности"...

И наконец-то, про Регистратор.
Но перед этим, по традиции, небольшая история.

Одним из первых моих предприятий была старейшая в районе птицефабрика, год основания которой даже старожили не могли точно назвать. Самые жёлтые формуляры основных фондов указывали на 48-й послевоеный год. Ну и, как полагается, в техзадании по учету основных средств, одной строчкой была запись об автоматическом формировании карточки ОС. Тоже мне задачка, думал я, выдеру что надо из типовой и все дела. Но бухгалтерия там оказалась та ещё, с черными нарукавниками, и когда я показал пустую печатную форму ОС-6 с наименованием, инвентарным номером и балансовой стоимостью, услышал неожиданный для себя спич: "А где разделы "движение основного срества", "модернизация", "ремонт", "состав", "характеристики" и наконец, где данные ежегодной переоценки? Простите, но нам такая механизация не подходит!"
- Так этих данных нет в программе!
- Таки мы внесём, скажите только куда?
- Так там же тыщи формуляров с 40-х годов!
- Таки да, а в чём вопрос то?

Вопрос конечно интересный, а куда вносить-то? Плодить документы "МодернизацияОС",, "ПереоценкаОС" и т.д. за все годы?

С этой проблемой я разобрался быстро и красиво - набор подчиненных справочников образца [ДатаЗаписи,..., Документ] в соответсвии с разделами ОС-6, и... карточка готова. Фишка была в том, что часть записей предполагалось ввести вручную, как начальные сведения, и без особых напряжений, в дальнейшем же соответсвующие документы в ОбработкеПроведения создавали записи уже самостоятельно, а в ОбработкеУдаленияПроведения эти записи полностью удалялись. Редактировать записи, созданные документом, во избежание блокировки было запрещено, ПриОткрытии открывался непосредственно сам документ, а ручные записи - пожалуйста, создавай и меняй сколько хочешь. В обшем, как в истории периодического реквизита, я прозвал тогда эти справочники "историей элемента".
Ура?
Стоп.
Вот пройдёт столько-то лет, пополнятся сведениями эти регистры, разбухнет база, кто-то захочет провести свёртку, и удалит ведь ко всем чертям все новые данные вместе с документами. И что, опять несколько человеко-месяцев сядет оцифровывать пожелтевшие формуляры?
Вот тогда-то я и задумался, а должны ли в принципе записи в подобных случаях вообще удаляться?
И впервые тогда нарушил идеологический постулат Компании - обратимость проведения документа. Мои записи в подчиненных справочниках перестали исчезать, они только стали менять, как умели, своё состояние вместе с состоянием документа, а процедура их создания переместилась из модуля документа в форму, где ПриЗаписи, в общей транзакции, сохранялся как документ, так и "подчиненные" записи. И к свёртке я подготовился, черканул обработку для "дерегистрации" всех записей от документов-регистраторов. Уже не так красиво, правда?
Вот так, за одной малекой строчкой в техническом задании скрывалась цельная концепция.
Так я и пришёл к понятию "регистратор", как и многим другим, решая задачи "на земле".

Итак Регистратор - это функция ПрикладногоОбъекта, наделяющая его правом подчинения других ПрикладныхОбъектов собственным интересам, включая право на содержание, состояние и жизненный цикл последних.

Можно сказать и по другому:
Регистратор - это свойство ПрикладногоОбъекта, ссылка на другой ПрикладнойОбъект, который обладает правом для подчинения самого объекта собственным интересам, включая право на содержание, состояние и жизненный его цикл.

Можно сказать и по третьему, и по десятому, суть не изменится.
Зачем я так издеваюсь над этим термином?
Этим я хочу подчеркнуть, что понятие Регистратор применяется исключительно к ПрикладнымОбъектам и не имеет никакого отношения к фундаментальным свойствам объектов.
Обратите внимание, само определение не является строгим, включает в себя такие вольные словечки как "включая", "интересы", "право". Выходит, можно включать, а можно и не включать. А закон это вообще, как в народе говорят, дышло. Здесь нужно понять и зафиксировать, что Регистратор каким мы его знаем - это не более чем однобокое порождение идеологии 1С, упрощение в первом приближении, а на самом деле логика Регистратора более сложна и разнообразна, и в общем случае она подчинена логике подчиняемых им ПрикладныхОбъектов. Бутерброд?

Поясню вышесказанное на примерах.
Является ли Контрагент регистратором для своего ОсновногоРасчетногоСчета? Нет, не является, это поведение укладывается в концепцию ООБД, это вполне легитимный способ ввода и редактирования Объекта в Форме другого Объекта. Без обязательств, по быстрому и разбежались. ОсновнойРасчетныйСчет в последствии можно спокойно открыть, изменить у даже удалить, и Контрагент об этом даже и не узнает.
А вот в случае с Операцией ОтгрузкаТоваров и ТТН - немножко другая ситуация. Здесь включается логика ПрикладныхОбъектов, и мы начнём рассуждать по логике вещей. Так, если Операция использует в своих целях данные Документа и будет проведена на его основании, должно ли при этом измениться Состояние самого Документа Проведён/НеПроведён? По логике, должно. А можно ли редактировать этот документ теперь независимо от Операции? По логике, нельзя. А как быть, если Операция помечена на удаление? По логике, пометить и Документ. А как быть, если Операция удалена?

Вот здесь и должна подключиться к логике ПрикладныхОбъектов Машина, разорвать "ссылочную целостность" между Регистратором и подчиненным ему Объектом, Операцию удалить, а Документ оставить.
В этом то и заключается ценность ПрикладныхОбъектов как базовых Классов в концепции ПОП.

Регистратор я переименовывать не буду, это сложившийся и важный для нас термин, оставим его как есть, тем более, ведь есть же у нас Регистры.
А вот термин ПОП мне уже порядком поднадоел, слово "предмет" я ни разу ещё не использовал в своих сочинениях и поэтому здесь я объявляю манифест о Прикладном Объектном Программировании, как концепции программирования в объектно-ориентированных системах управления базами данных.
Звучит?
Концепция, брат!

...

ЗЫ: Если есть "подчиненный" справочник, то главный у нех наверное большой "начальник"? Или "чиновник"? Как лучше?


Пиит

Немного отвлекусь, чтобы таки окунуться в работу.
Небольшой лайф-хак по работе с подчиненными справочниками, может баян, не знаю, придумал сам, ни с кем не делился, нигде не видел, пишу здесь как-бы кстати...

В некоторые подчиненные справочники, такие как Договора, Партии и т.п. добавляю реквизит ИсконныйВладелец, дубликат Владельца, с Отбором. Значение этого реквизита устанавливается ПриЗаписи элемента, и на протяжении жизненного цикла не изменяется. Что в итоге имею?

1. ПриСменеИерархии, точнее при отключении таковой, принудительно включаю отбор по ИсконномуВладельцу, что позволяет искать Договора одного Контрагента вне зависимости от их групп в справочнике.
2. Выношу ИсконногоВладельца на специальную форму ВсеДоговора с отключенной иерархией, в хронологическом порядке, где пользователь видит, чей это договор, и может в целом проводить аудит Договоров, проверяя некие состояния типа Подшит/НаПодписи, наличие прикрепленных сканов и т.п..
3. Даю возможность пользователям одним движением "архивировать" Договора и Партии, меняя при этом Владельца подчиненного Элемента, не этого "исконного", а того самого "системного". Таким образом пользователь избавляется от неприемлемо больших списков, но может посмотреть "архивные элементы" при отключенной иерархии в обычной форме (см.п.1). В качестве "архива" используется специально обученный Контрагент. Ессесно, операция обратима, можно и извлечь из "архива" нужную запись. Так же есть обработки для "массового архивирования" незамеченных за последнее время в бухгалтерских итогах элементов. И кое-где даже с разложением "по папкам" внутри "архива".

К слову, похожим образом, с помощью реквизита "ИсходныйРодитель", в больших неподчиненных справочниках я использую "Корзину", как специально обученную группу справочника.

Может кому пригодится.

Пиит

Цитата: Пиит от 15 апреля 2024, 13:19Небольшой лайф-хак по работе с подчиненными справочниками

Не могу остановиться. Ну просто обожаю подчиненные справочники.
Ещё немного "сняв портки, поброжу околицей" вокруг этой птицефабрики.
Потерпите немного.

Там же и тогда же я выделил ещё одну разновидность подчинённых справочников, со структурой образца [ДатаЗнач, Ревизит1, Реквизит2,..]. На них я реализовал историю знакомой нам субстанции Счет,,СубконтоХ. Полагая, что в режиме реального времени как правило будут востребованы последние значения, и в целом, основное средство не часто меняет своою дислокацию, я не парился о количестве итераций, и простым перебором "с конца", получал запись истории значения. Сами же реквизиты Счет и Субконты и вовсе изъял из владельца, в знак уважения к Эдгару Кодду. Тем не менее, форму ОС я не обделил, разложил на ней Счет и Субконты как псевдо-реквизиты,
как атрибуты Формы. Подменил также типовую обработку ЗаписьПериодическихРеквизитов на более продвинутую ЗаписьПериодическихСведений. И блокировки подтянул до логики периодических реквизитов, если Владелец заблокирован, нельзя внести запись непосредственно в справочник.
В общем, реализовал в полной мере периодический регистр сведений, и даже умудрился связать такие подчиненные справоники именно с этим словом - ПериодическиеСведения. Использовал эти конструкции и для справочника Сотрудники, и ещё Бог знает где.
И будущие планы видов характеристик, прости Господи, я тоже мастерил на починенных справочниках.
И даже первые наброски аля журналов расчетов на бухгалтерской компоненте я моделировал на подчиненных справочниках, но быстро отказался, и полез по уши в проводки.

Представьте теперь, что я думал о Компании, когда впервые закрывал окно конфигурации в свежеиспечённой платформе v8.
А как его впервые открывал, дрожащими руками, сердце стучало, как рельсы под скорым Брест-Москва.
И что я увидел? РегистрСведений, который может быть только "или-или"? Или заполняется вручную, или подчинён документу. Это как? На кой мне такое? Многомерным стал? Так мы и не такие Функции уже освоили, и не благодаря вам, господа хорошие, а вопреки, или да, благодаря вашему упущению в виде ЗначениеВСтрокуВнутр. Да, да, именно Функции, в N аргументов, и Запрос нам здесь в помощь, кто не знает, есть там такой метод Получить(<ЗначениеГруппировки1>,...,<ЗначениеГруппировкиN>), прямое позиционирование на запись в выборке, очень кстати при обработке большого числа записей...

Знаете, каким был мой первый пробный ПланВидовХарактеристик? Валюты и Единицы измерения.
Я реально обрадовался, думаю вот, хоть что-то дельное, пользователь сможет регулировать точность Валюты и ЕИ, наконец-то, не дело ведь когда белки с копейками а штуки с тысячными. Ага, держи карман шире, "неверный типа данных".
Проводки, добавили ресурсы, хорошо, теперь можно наконец реализовать без извратов количественно-весовой учёт поголовья, только называться они должны "измерители учета", так они прописаны в толмудах по бухучету, и бывают они натуральными, трудовыми и денежными. Я их уже реализовал, без "ресурсов". Правда, в очередном релизе v7, после 14-го вроде, оказалось, что Запрос перестал поддерживать произвольные числовые реквизиты проводки в собственных функциях ДО() и КО(), бывает, что делать. Из какой же предметной области слово это - "ресурсы"? Опять своя идеология? Опять всё под одну тупую гребёнку?

В общем, новая платформа оказалась самым большим разочарованием в моём жизненном цикле.

И где таки догожданное ВыбратьВПромежутке("Наименование", "от А", "до Х")?
Владимир Ходаков ака hoqik, первопроходец в области замены движка БД, тоже помню ругался, на чём свет стоит. Он ведь прикрутил в своё время свой ext в v7 для таких радостей жизни. И вот скажите, индекс то есть, ничего нового не нужно, дайте только доступ к нему, дайте мне эту ВыбратьВПромежутке. Это что, концепция? Имхо это тупая упёртость рогом в свою собственную бездарность.

Так что же такое Регистры?...

ЗЫ: Друзья, если у кого есть раздражение по непоследовательности изложения, примите во внимание, что в этих записках нет системы, это не фрагменты книги, они сочиняются в режиме реального времени, и горизонт планирования не привышает одну заметку. Кто читает, потерпите, камень уже на выходе, кирпич я бы сказал, скоро пойду на второй круг, с самого начала, но на новом уровне диалектического развития.

Кто знает что про Владимира Ходакова? Жив, работает? Боюсь даже спрашивать.

Пиит


Пиит

Договор №79 я подпишу в этом месяце с новым клиентом. На фрилансе. А сколько их было "во франчах", уже не берусь вспомнить. Моя птицефабрика, два АПК, и все заводы-пароходы остались там, "во франчах".
В нашей стороне не говорят "фриланс", у нас говорят "ИПэшник". Когда-то было "ЧеПэшник", частный предприниматель, но, вероятно по политическим мотивам, парламентарии вскоре переименовали меня в индивидуального. А намедни наша "палата лордов" извлекла из себя очередной кирпич, по которому ИПэшники до конца 25-го года перестанут существовать как Класс. Какому-то неуёмному никак не могло уложиться в таблицу, каким образом ИП может быть одновременно и ФЛ и ЮЛ. Отныне будет всё по полочкам, ЮЛ отдельно, ФЛ отдельно в своих подмножествах юридических концепций. Имхо, идеологией-с попахивает-с.
Пишу об этом не случайно. Как "высоким лордам" не просто разобраться в своих идеологемах, так и лорды от науки порой стоят десятилетиями в концептуальных тупиках своей предметной области. Если Эдгар Кодд осилил таки в своё время обосновать концепцию РБД как математическую модель, полную, непротиворечивую и достаточную, то с концепцией ООБД не всё так радужно. Насколько мне известно, новый Эдгар на свет ещё не появился, и никто в общем нам и не раскажет "как надо". Эдакая проблема столетия Гильберта в информатике.
Вот отсюда и споры, и перетягавания канатов и топтание на месте в течение вот уже десятилетий.
Утверждал и буду утверждать, что v7 есть продукт мирового уровня. В то время, в конце девяностых, ведущие компании-разработчики СУБД, IBMы и SUNы, делали только первые шаги в этом направлении, с большой осторожностью внедряя в свои продукы зачатки ООБД. Поэтому появление на наших просторах такой платформы, включающей в себя косвенно и ООП, и одной ногой в СУБД, имхо это было событие, которое и тогда, и сейчас многие недооценивают. Нынче модно щеголять номером версии продукта, а не его содержанием. Поэтому я в общем, ругая Компанию здесь, буду с кулаками защищать её вне нашей компании, в кругу непосвященных во все недостатки и достоинства Предприятия людей.
"В твоём С1 всё не как у людей", постоянно слышал я от программистов высокого полёта. "Да вы чево, этож целая среда, база, пиши не хочу!". "Гы-гы-гы, напиши нам Дуум". А вы напишите сперва мне хотя бы учет кадров на своих плюсах, а потом издите, а погляжу, сколько времени вам потребуется на конструирование классов, таблиц и форм, а потом и подумаю, стоит ли вам вообще платить зарплату. Я так не говорил, я так думал. Потом именно мой отдел платил зарплату этим бездельникам.
Так я стал чётко понимать разницу между программистами и одинэсниками. Имхо, проблема программиста в том, что ему трудно где-то остановиться в полёте своей фантазии, летает себе в бескрайней среде классов, форм, таблиц, и по неведомым просторам. Проблема же одинэсника заключается о обратном, он заточён в одиночную камеру, крылья чешутся, и порой хочется просто взорвать эти стены и летать, летать. А если и небо видишь каждый божий день, то камера твоя превращается в пыточную. Поэтому каждая новая внешняя компонента, каждый новый квадратный метр моей камеры - это возможность немного расправить крылья. А еще лучше  - сменить нах место заточения на другое, на 2С например. Эти программисты - те что надо программисты.
Не подумайте, я программистов люблю, мои друзья "теперь и в Mic и Sun", на 1сv7 не плюются, относятся с должным уважением, не без моих усилий, конечно. А те, кто поближе, даже помогают мне, например вот, с АЛьФом бороться. Я недаром вспоминал случай, когда мой товарищ признался через много лет, что только пришёл к пониманию проблематики v7. Я не смеялся над ним, я знаю, что нам, одинэсникам трудно понять проблемы программистов, а им трудно опуститься на наш прикладной уровень. А над кем смеяться-то? Над всей ИТ-индустрией с её лярдами, лабораториями и научными сотрудниками, среди которых таки не нашёлся новый Кодд, чтобы разрешить концептуальное несоответсвие ООП и РБД? Тоже мне, Гильберт выискался.
Давид Гильберт, академик, "бухгалтер" математики, был величайшим умом своего времени. Покоритель геометрии, автор "абсолютной" геометрии, свёл воедино три пространства в одно, и поставил точку в аксиоматике пространств. Это тебе не концепция ООП. А чем он известен публике? Раскручивают его за какие-то "задачи столетия". Даже голливуд изо всех сил пиарит "10 проблем века", как будто составить топ-10 это какое-то величайшее достижение.
А я догадываюсь, почему. Это как "тесла", тачка такая крутая, скажет любой нигер в любой олобаме. Нихера себе "тачка", это мать вашу, Николай Милутинович Тесла, отец современного мира электроники, и ни хера не американский, и не австро-венгерский, а сербский. Серб он, нравится это кому-то или нет. Чем же интересен товарищ Гильберт? Нет, он немец. Но если копнуть, на чьих плечах он стоял, увидим товарища Риммана, тоже немца, исследователя пространств постоянной положительной кривизны, ну а если поскребсти как следует Бернхарда Риммана, то окажется, что он быть всего лишь жалкой тенью, подражателем Николая Ивановича Лобачевского, разовавшего в своей тесной коморке Казанского университета Евклида на части и обосновавшего существование пространств постоянной отрицательной кривизны.
Как вам? Здесь уже не только идеогогией-с попахивает-с.
А на чьих плечах стоим мы? Вспомним Родителей. Что мне досталось от Родителя моего? Наследник крестьянина, пролетарского Класса, он не только оставил мне свою Фамилию и своё Отчество, мои базовые реквизиты, но и дал мне возможность расписывать здесь с умным видом свои размышления. Неплохое плечо.
Второе плечо моё здесь, это те парни, из 2С, благодаря которым я собственно и занялся этими размышлениями. Всех же своих наставников я как-нибудь ещё вспомню поимённо.
Вот, о Родителях и базовых атрибутах поговорим в следующий раз. Работать надо.

ЗЫ:
А на чьих плечах стоял наш любимый лохматый Альберт? Следите за руками - Лоренц - Пуанкаре - Минковский... дальше не продолжаю. А Милена Милошевна Марич, наверное, всем им борщи варила в это время, а её братья дров подносили.
Интересно, а на чьих плечах уселся Билли Гейтс? И кем таки работала его мама в IBM, что вдруг так вот, DOS, совместную разработку компании и военных ведомств взяли так и подарили юноше "на д/р".
А Стиви Джобс? Кто из ныне живущих знает про Стива Возняка, некого "американского изобретателя"?
Ну всё, в эту тему я больше ни ногой.

Злоп

ООБД не может бывть радужной хотя бы потому, что это надстройка. а как любая надстройка-шанхай - состоит из овна и палок, допускает множество трактовок и моделей.

Пиит

Цитата: Злоп от 17 апреля 2024, 12:25ООБД не может бывть радужной хотя бы потому, что это надстройка. а как любая надстройка-шанхай - состоит из овна и палок, допускает множество трактовок и моделей.

Нет, дружище, это концепция программирования.
В ранее построенной БД, уже существующей среде, можно даже сказать, в виртуальном пространстве, где не существует отдельных либов, интерсейсов, классов и даже типов данных вне этого пространства. Где с любым Классом, с любой переменной, каждой "int A" можно взять и проделать фокус "A.Save()". Где размыта разница между оперативной и постоянной памятью. Это новый мир, Злоп. Это тюрьма, о которой я мечтаю, без стен и границ.

Как-то пафосно вышло, блин. Не бузи, Злоп, потерпи немного.

Arbuz

Цитата: Пиит от 16 апреля 2024, 10:57ЗЫ: Друзья, если у кого есть раздражение по непоследовательности изложения, примите во внимание, что в этих записках нет системы, это не фрагменты книги, они сочиняются в режиме реального времени, и горизонт планирования не привышает одну заметку. Кто читает, потерпите, камень уже на выходе, кирпич я бы сказал, скоро пойду на второй круг, с самого начала, но на новом уровне диалектического развития.

Не-не, никакого раздражения по (не)последовательности нет и в помине. Даже интересно. Есть некое раздражение, уж простите, от того, что чудовищная часть ваших хотелок-вопросов-пожеланий закрывается уже реализованным 1срр (и современным диалектом скулайта для файловых баз). На который у вас аллергия, уж простите ещё раз за откровенность.