Несколько табличных частей в одном документе в 7.7 #380143


#0 by victuan1
Вот придумал концепцию организации нескольких табличных частей в одном документе. Так чтобы не пострадал контроль ссылочной целостности и чтобы не лепить на форму ТЗ. Вот хочу поделиться, удачна ли вообще моя реализация этой идеи?
#0 by victuan1
Вот придумал концепцию организации нескольких табличных частей в одном документе. Так чтобы не пострадал контроль ссылочной целостности и чтобы не лепить на форму ТЗ. Вот хочу поделиться, удачна ли вообще моя реализация этой идеи?
#0 by victuan1
Вот придумал концепцию организации нескольких табличных частей в одном документе. Так чтобы не пострадал контроль ссылочной целостности и чтобы не лепить на форму ТЗ. Вот хочу поделиться, удачна ли вообще моя реализация этой идеи?
#1 by Silgis
Ну давай выкладывай. В свое время сделал это на 1С++, через Табличное поле(ТР)
#2 by Стрелок
не лепить на форму ТЗ? а во что выводить данные? ссылочная целостность прекрасно работает на подчинённых документах, данными из которых заполняются ТЗ на форме. у меня есть разработки (конфигурация) в документах по 5-6 табличных частей
#3 by Mikeware
Трехколесный велосипед с вращающимися в разные стороны взаимноперпендикулярными коресами с разным числом углов?
#4 by victuan1
без всяких плюсов. Во-первых, продумываем колонки наших табличных частей. Выявляем одинаковые колонки всех табличных частей. Одинаковые по типу, но не по названию колонки. Если в разных таб. частях используются справочники разных типов. То колонкам присваиваем тип Справочник.НеопределенногоВида и считаем колонки одинаковыми. Во-вторых, на уровне метаданных в таб. часть нашего документа добавляем реквизиты: НомерТабличнойЧасти, Колонки все наших таб. частей без рабора (при этом не повторяем одинаковые колонки с т.зр. п.1) В-третьих, в документ добавляем количество закладок по количесту виртуальных таб. частей. Многострочная часть документа находится на общем слое. В-четвертых, при открытии документа. Считываем в ТЗ табличную часть документа. Таб. часть документа очищаем. При выборе закладке натсраиваем видимость колонок многострочной части документа, по фильтру НомерТабличнойЧасти заполняем многострочную часть документа нужно виртуальной таб. частью. При выборе закладке сохраняем изменения мнгостр. части в ТЗ, "заливаем" по фильтру другие строки. В-пятых, при закрытии и сохранении документа, ТЗ со всеми вирт. ТЧ загруажем в многостр. часть документа
#5 by victuan1
Минусы: 1) храним избыточное количество пустых ячеек (пустые колонки, не исполозуемые в других ТЧ) 2) максиальная емкость ТЧ документа уменьшается в n раз, где n - кол-во ТЧ (помним, что в 1С макс. номер строки 99999)
#6 by victuan1
Все остальное плюсы
#7 by Стрелок
жесть. мне не нравится. есть проще варианты с ТЗ
#8 by Mikeware
И попереключавшись между закладками получаем измекненный документ? КГ/АМ
#9 by Стрелок
"помним, что в 1С макс. номер строки 99999" - ошибся в 10 раз
#10 by Cthulhu
навскидку: теряется диалоговое изменение ширины колонок криво работает переключение закладки в процессе ввода новой строки
#11 by victuan1
Научи как проще Гасим признак модифицированности таким кодом: "Попытка Записать Исключение КонецПопытки" Это я опечатался, но для моих целей хватит диалоговое изменение ширины колонок теряется и в типовых решениях от 1С (напр. Документ БухСправка, закладки: БУ и НУ). Почему криво работает переключение закладки в процессе ввода новой строки? я просто не в курсе, объясни.
#12 by Стрелок
главное - скорость теряется в разы. перезаполнять ТЧ при переключении закладки? мне не нравится. и ещё - юзер начал вводить новую строку - не ввёл что то определяющее номер закладки или данные - закрыл документ с сохранением - на какой закладке выведется инфа по этой строке юзер начал вводить строку (она в режиме редактирования) и решил переключить раскладку. что будет?
#13 by Mikeware
Скорость не сильно и упадет. Вообще, зачем такие извраты, если есть 1с++
#14 by victuan1
1. Я проверил, глазу не заметно перезаполнение ТЧ 2. ПриНачалеВводеСтроки присваиваем НомерТабличнойЧасти 3. ПриНачалеВводеСтроки ставим флаг. При окончании редактирвании строки убираем флаг. Запрещаем переключение закладки пока включен флаг или завершаем ввод строки.
#15 by victuan1
Как сделать на 1с++, я не в курсе?
#16 by Стрелок
вообще идея интересна. но подумай. я например гружу в ТЗ при открытии ОДИН раз данные из подчинённого документа и в последствии при записи основного документа переношу исправленные юзером данные в подчинённый документ. а ты постоянно перезаполняешь основной документ. не кажется ли тебе что это путешествие из Питера в Москву через Магадан
#17 by Mikeware
В поиск.
#18 by victuan1
Во-первых, "гружу в ТЗ" не хочу на форме эмуляторов таб. частей, хочу чтобы пользователь работал нормальным интерфейсом, пользовался кнопками Insert, Del или их командными кнопками, вводил значения непосредственно в ячейке. Т.е. чтобы все было "красиво" Во-вторых, не хочу плодить сущностей без надобности - доп. подч. документы.
#19 by victuan1
Ну хотя бы мне, лентяю, дай строку для поиска, а?
#20 by Aleksey_3
Проблема. при сохранении ТЗ выгружается в ТЧ. И юзеров это немного пугает.
#21 by Mikeware
И что мешает?
#22 by Стрелок
есть методы работы с ТЗ через ВК - от ТЧ не отличишь подчинённые докукенты - умножение сущностей? да ладно
#23 by Mikeware
#24 by Jolly Roger
А нафига? Восьмерка же есть...
#25 by victuan1
Восьмерка будет не раньше через два года, а жить надо сейчас
#26 by victuan1
Мешает нежелание юзать внешние компонетны
#27 by victuan1
Сделаю так, чтобы не видели
#28 by Jolly Roger
На сегодняшний день семерка без плюсов вобще не живет...
#29 by Mikeware
Чесать нос, засунув руку через задницу  - желательно, а вот юзать ВК - нежелательно... ну-ну... Зато "с плюсами" по крайней мере, на равных по возможностям, но менее требовательна.
#30 by Стрелок
накидай пожалуйста структуру ТЧ окумента по моему документы у 6 ТЧ на подчинённых документах 1 - основная ТЧ документа 1. работа (справочник "Услуги") 3. стоимость нормочаса (число) 4. сумма на услугу без скидки (число) 5. сумма на услугу со скидкой (число) 6. скидка на услугу (число) 2 - ТЗ № 1 "материалы в заказе" 3. стомисть (число) 4. сумма материала без скидки (число) 5. сумма материала со скидкой (число) 6. сумма скидки на материал (число) 3 - ТЗ № 2 "запчасти в заказе" 3. стомисть (число) 4. сумма запчасти без скидки (число) 5. сумма запчасти со скидкой (число) 6. сумма запчасти на материал (число) 4. ТЗ № 3 - "выполненные работы по каждой услуге" 1. Услуга (справочник "Услуги") 2. Работа (справочник "Работы по услугам" подчинённый справочнику "Услуги")
#31 by victuan1
Ладно, буду юзать плюсы поиском. Но один вопрос: где реализуется хранение доп. ТЧ при юзаньи ? В подч. доках?
#32 by victuan1
3. количество нормочасов (число)... 4. стоимость нормочаса (число)... 5. сумма на услугу без скидки (число) ... 6. сумма на услугу со скидкой (число) ... 7. скидка на услугу (число) ... 8. Работа (справочник "Работы по услугам" подчинённый справочнику "Услуги") 9. Сотрудник (справочник "Сотрудники") 10. замечание (строка)
#33 by Стрелок
угу и ПриначалеВыбораЗначения для всех случаев жизни так? прикольно. особенно усли учесть что точность и длина поля у всех практически ТЗ разная. т.е. количество нормочасов и коичество материалов и количество запчастей - разные по размерности числа
#34 by victuan1
Да, ПриначалеВыбораЗначения. Количество нормочасов и коичество материалов и количество запчастей я не разбил, потому что ты не указал точность. Указал бы, разбил бы.
#35 by Стрелок
особенно прикольно проведение строить по такой ТЧ этож каждый раз надо флаг закладки проверять. эта работа типа "сдела и забыл". что то подправить в таком документе (добавить ещё одну колонку в определённую закладку) - можно застрелиться. хотя как вариант мести заказчикам при желании свалить от них - почему нет ;)
#36 by Стрелок
я не сказал что идея - полная кака. можно и на справочниках построит доп ТЧ. просто проще гораздо работать с ТЗ на форме и не морочить голову
#37 by victuan1
Я создал универсальный механизм - массив номеров ТЧ и список колонок, по ним он строит отображение на форме и формируте ТЗ для проведения. Сопровождать просто: добавил новый реквизит в ТЧ, добавил в массив новое описание - всё!
#38 by victuan1
Если отрбосить в сторону 1с++, то имеет ли право на жизнь моя идея, или есть более удачные идеи, не использующие 1с++?
#39 by Mikeware
Имеет. Только чрезжопица это.
#40 by victuan1
Я знаю про жопицу, просто в 77 без плюсов иногда никак
#41 by Mikeware
Тогда посчитай,  стоит ли необходимость двух ТЧ перехода на восьмерку, и переходи. зы. если есть удобный инструмент - такой, как 1с++ - грех его не использовать. Тем более не нарушающий прав и бесплатный.
#42 by victuan1
У меня в итоге не 2 ТЧ, а 5. Но восьмерку перейти не могу, т.к. надо конфу дорабатывать быстро, а на 8-ке я программирую в 1000 раз медленнее, а надо быстро, да и парк компов не потянет 8-ку. На освоение 1с++ тоже время надо, оного у меня нет, вот и спрашиваю альтернативы.
#43 by Mikeware
"Думать некогда, трясти надо?"© :-)
#44 by victuan1
Если кому интересно, то пытаюсь на типовой бух 77 наладить производственный учет. Пока что моя реализация очень походит на реализацию производственного учета в УПП. А ПУБ я на дух не беру.
#45 by victuan1
Сам я прог в глубинке с большим стажем программирования в 77 (вот только 1с++ как-то пока миновал), знаком более чем с бухучетом. Наняли меня за 20 т.р. в месяц в производственную фирму наладить порядок в производстве. Если смогу наладить нормальный производственный учет (похожий на УПП) в типовой бух, поделюсь с сообществом
#46 by qqqq1111
#47 by victuan1
Спасибо
#48 by victuan1
Блин, ну не нравится мне идея - заводить доп. служебный документ, хоть убейте! Хочется, чтобы вся необходимая информация хранилась в одном документе, даже если возрастут трудозатраты по его программной обработке. Даже не знаю, что сделать, что победить свою убежденность.
#49 by victuan1
Блин, посмотрел я демо-пример по ссылке в . Ну неудобно до ужаса. ТЗ на форме - это ацтой! Пока что у моего методы есть преимущества, от которых меня никому не удалось отказаться: 1) никаких ВК (даже таких полезных как 1с++) 2) никаких ТЗ - все таб. части редактируются удобной и привычной многострочной частью документа 3) никаких доп. сущностей без надобности - ни подч. документов, ни служебных справочников.
#50 by Mikeware
Это старая дилемма - "код/данные". Денормализация (отдельный документ) в данном случае дает простоту обработки и (опять же ИМХО) вполне оправдан...
#51 by Mikeware
Вот чем тебе ВК не угодили - понять не могу... v7plus.dll тоже похерил ?
#52 by victuan1
v7plus.dll имеет статус "1С: совместимо", 1с++ - нет. С 1с++ я уже натолкнулся на баг, что она может затирать значения переменных глоб. модуля. Очень устойчивый баг словил, при использовании метода ИсполняемыйМодуль случилось что глоб. переменная Да, потеряла свое значение, поменяв его на значение одной из переменной ИсполняемогоМодуля. Представляешь, как я огребся? Ведь переменная Да до хрена где используется в типовых конфах. Причем баг устойчивый, хоть в багзиллу добавляй. А если серьезно, вопрос из разряда почему бы не юзать 8-ку вместо 77.
#53 by Mikeware
Ты уверен, что это баг? кинь на форум 1с++ описание с тестом...
#54 by victuan1
Уверен! Поменял имена перменных в Исполняемом модуле, баг пропал, вернул на место, тут же появился. Весь мудешник кидать? Простого примера сделать не получается. Так что, боюсь я 1с++ повсеместно юзать, попала она у меня в разряд недоверяемых
#55 by Mikeware
то, гдн менял, и нидай... Имхо, дело не в 1с++, а в широко известном драйвере....
#56 by victuan1
не понял
#57 by Cthulhu
руки.sys
#58 by victuan1
После выполнения такого ВМ: значение переменной глобального модуля Да, имеющей значение Перечисление.Булево.Да менялось на значение ТаблицаТовара. Причем здесь "широко известный драйвер"?
#59 by victuan1
Чтобы было понятнее откуда взялось Конт, сообщу, что вначале ВМ был еще такой код:
#60 by victuan1
В форме модуля документа Чек такой код: В глоб. модуле такая ф-я:
#61 by Cthulhu
это с "чистым" 1с++ или с FormEx?.. (просто в свое время нарвался на то, что при использовании FormEx в отладчике после простого присвоения в коде внешней обработки управление перескакивало в глобальный модуль, причем на прямо на строку внутри процедуры.. я офигел..)
#62 by victuan1
Чистый 1с++ без формекса
#63 by Falcon
нормальный метод при соблюдении некоторых условий, если условия не соблюдаються - то и метод не пригоден... универсального все равно нет... посему в каждом конкретном случае использовать конкретный метод, и чем больше методов есть в твоём арсенале, тем ты проффесиональнее.....
#64 by Guk
то что придумал гений из , народ уже лет 8 пользует...
#66 by victuan1
Хотелось бы услышать от тебя конкретики, а также поделись опытом.
#67 by у лю 427
вопрос в неизвестность....
#68 by Struk
Ты слишком много смотришь передачь с Бахметьевым "Очумелые ручки".
#69 by Шурик71
Метод нормальный, но сильно ограниченный: - нельзя одновременно показать 2 таб. части - нельзя сделать фильтрацию данных одной таб. части по другой (один - много) - хлопотно делать одновременный вывод итогов по нескольким таб. частям
#70 by victuan1
1. Мне не требуется 2. Как раз это я реализую, в том числе 3. Нет, учитывая, что я таб части внутри распихиваю по ТЗ
#71 by Emvika
1 - был бы смысл... это ты 8-кой избалован 2 - что мешает? дописать зависимость - проблем-то... тяжко отслеживать изменения, но можно, если постараться 3 - в чем хлопоты? в коде ТЗ ведь никто не отменял!
#72 by Falcon
иногда есть... мне вот надо было показать в табчасти Лот и две ТЗ: "состав лота" и "заявки по лоту"....  вот и представь сколько избыточной инфы висело бы в документе....
#73 by Emvika
тогда с помощью ТЗ реализуешь всё от задачи зависит
#74 by Шурик71
п. 1,2 Мне в 7.7 чаще требовалось, чем в 8 :) И в п.2. я имел в виду показ/редактирование одной таб. части по тек. строке другой таб.части. Без одновременного показа 2х частей это невозможно или неудобно. Простой пример. + Табчасть "Серийные номера" (подчиненная к материалам) + Табчасть "Детализация" (подчиненная к услугам) -  показывает основания выставленных услуг (типа заказ-нарядов). Серийные номера и детализацию удобнее видеть/вводить по текущей строке материалов/работ. На вопрос "почему не объединить, например, работы и детализации" отвечу "потому что цена одна за услугу". 3. Поддерживать еще и тз по каждой псевдотабчасти во время постоянных выгрузок/загрузок - дополнительный расход ресурсов и кода :) Неразрешимая проблема при данном способе - только одновременный показ и все, что из него вытекает.
#75 by Falcon
ну так об этом речь... ими и реализовывал :)) но реализвоть это через методику - больно геморно и бессмысленно, проще было использовать документы...
#76 by Sserj
Может быть стоит немного упростить способ (хотя я конечно всетаки рекомендовал бы ТЗ на форме) 1. Колонки которые находятся на определенной закладке именуем по формату, к примеру: ТЧ01В1Сырье  ТЧ01В1Количество  ТЧ01В0Ерунда   ТЧ02В1Материал   ТЧ02В0Ещечегото.... При открытии, как хотел перегружаешь это все в ТЗ, удаляешь строки, и в зависимости от закладки начинаешь перебирать колонки, разбирая названия 4 знака признак к какой ТЧ относится, дальше 2 знака видимость, впринципе еще может добавить доступность, ну и последнее собственно заголовок.
#77 by Sserj
+76 Когда уже отправил пришла идея! Не стоит поганить идентификаторы, лучше все это перекинуть в комментарии или на крайняк синонимы. Тобишь при выборе закладки пробегаешь через метаданные по таб.части выбираешь синонимы и уже по ним формируешь свою табличную часть.
#78 by victuan1
Согласен, это модификация моего предложения в . (74.3) Тут я погорячился, поддреживать ТЗ для итого не нужно, итоги уже будут в мн. части при открытии закладки.
#79 by КонецЦикла
Плохо ешкин кот
#80 by КонецЦикла
По статье... Вообще-то целесообразнее не служ. документ а служ. справочник имхо
#81 by victuan1
Почему плохо? Про справочник было ранее, я принял к сведению
#82 by Falcon
для меня, плюсы документа: 1. можно открыть форму документа и сразу получим форму редактирования таб части.... с привычными для юзера ins и Del 2. непосредственное удаление строки из документа 3. быстрое формирование ТЗ по выбранному доку, через выгрузить/загрузить...
#83 by qqqq1111
не делай все как там написано, идея отличная для многие ко многим, я думаю кнопкой из формы справочника открывать модально форму документа, у пользователя сложится полное впечатление, что он в справочнике, ес форма документа правильно оформлена, ~ как форма текэлемента справочника, т.е если док уже введен то в спр есть ссылка, ес нет то новый открылся, изменения в табличной части сама отследит и спросит если есть
#84 by qqqq1111
Возможно придется следить, чтобы не создавалось документов больше 1 для 1 элемента справочника, думаю все?
#85 by qqqq1111
А ес нуна хранить историю изменений табличной части?
#86 by qqqq1111
по кн из спр открывать с параметром: ВыбДата последний документ
#87 by Злопчинский
Подчиненные доки - и ниипет!
#88 by victuan1
Кстати, я реализовал сабж. Работает чУдно. При этом реализовал универсальный механизм, который: а) позволяет легко сопровождать конфигурацию в плане изменения состояния реквизитов табл. частей и кол-ва табличных частей для уже введенных в эксплуатацию документов б) без труда добавлять любое кол-во табличных частей в другие документы; в) не используются никакие ВК, все табличные части равнозначны в интерфейсе, пользователь управляет ими одинаково. . При этом оказалось, что являются мифом следующие утверждения: "И попереключавшись между закладками получаем измекненный документ? КГ/АМ" "криво работает переключение закладки в процессе ввода новой строки" "главное - скорость теряется в разы. перезаполнять ТЧ при переключении закладки? мне не нравится." - не теряется нисколько! "юзер начал вводить новую строку - не ввёл что то определяющее номер закладки или данные - закрыл документ с сохранением - на какой закладке выведется инфа по этой строке" - исключено! "юзер начал вводить строку (она в режиме редактирования) и решил переключить раскладку. что будет?" - строка автоматически завршит свой ввод! "Проблема. при сохранении ТЗ выгружается в ТЧ. И юзеров это немного пугает" - реализовал, чтобы пользователь это не видел "особенно прикольно проведение строить по такой ТЧ. это ж каждый раз надо флаг закладки проверять. эта работа типа "сдела и забыл". что то подправить в таком документе (добавить ещё одну колонку в определённую закладку) - можно застрелиться. хотя как вариант мести заказчикам при желании свалить от них - почему нет ;)" - см. п. а)
#89 by Стрелок
поздравляем. ты пробил дырку за 10 дней в стене. на подчинённых документах реализуется за 1 час
#90 by victuan1
Спасибо! Ты на самом деле не знаешь сколько я потратил времени. Но скажу следующее. Если бы я делал на подч. документах, то: а) это было бы дольше б) я не получил бы такого результата в плане удобства интерфейса и последующего споровождения(!) в) возросли бы трудозатраты по последующей организации переноса данных между конфигурациями (различными)
#91 by Стрелок
ну да ну да...... конечно. все вокруг дятлы а ты один дертаньян.... ну сделал и молодец. а как это работает в реале - посмотришь при реальной работе. хорошо?
#92 by Mikeware
БСМЯЛН
#93 by Стрелок
переведи
#94 by Mikeware
"Бред Сивого Мерина в Ясную Лунную Ночь"©
#95 by Стрелок
в оригинале было Сивой кобылы и эта фраза моя ;)
#96 by victuan1
Я не говорю, что я молодец. Я лишь отмечаю тот факт, что аналогичных решений я не встерчал. А вы? Мне что, демку выложить, чтобы были не одни голословные утверждения?
#97 by lea_220400
давай, посмотрим, вруг оно того стоит.
#98 by Mikeware
Я на ЦопыРыгхт не претендую :-)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С