Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 21:45
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Изменение табличной части  (Прочитано 8590 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Здравствуйте, вопрос вроде элементарный, но не соображу как правильно сделать. Имеем элемент справочника "ДоговорыКонтрагентов", при открытии формы в процедуре "ПриСозданииНаСервере" происходит заполнение табличной части значениями из Контрагента. В Процедуре "ПриЗаписиНаСервере" необходимо сделать проверку, если были изменения в ТЧ, тогда получить объект "контрагент" и перезаполнить в нем табличную часть. Вот собственно и вопрос как более правильно и просто отследить была ли изменена табличная часть. Заранее спасибо


Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Модифицированность()
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
сделайте запросом!
Добавлено: 16 Май 2013, 10:44

Модифицированность() - показывает если были изменения всех объектов!
Помогли, отблагодари!

Последний раз редактировалось: Yura063; 16 Май 2013, 10:44. Причина: Объединение сообщений

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Т.е. все равно придется сравнивать между собой в цикле то, что было и то что стало? А Модифицированность()  - да она ведь на все объекты сработает...

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
А вам не кажется что ваша схема немного какая то странная?
Добавлено: 16 Май 2013, 11:20

Может не использовать табличную часть в справочнике?
Тогда и проверять ничего не придется!
Добавлено: 16 Май 2013, 11:22

Может открываем справочник контрагентов и видим список его договоров открываем нужный договор и меняем там то что нам нужно?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Просто такая возможность должна быть и там и там. Может такое быть, что контрагент создан, а договора нет еще, а мы должны занести информацию в табл часть.

Оффлайн Codokopatel

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 9
  • КПД: 38%
  • Регистрация: 2013-05-02
  • Сайт: 
  • Профессия: Программист 1С
Скорее всего вы не правильно ставите вопрос. Если у вас типовая конфигурация - например: 1С:Бухгалтерия, то в этой конфигурации у справочника ДоговорыКонтрагентов нет табличной части. А то, что вы видите в справочнике Контрагентов на закладке "Счета и договоры" записи из справочника ДоговорыКонтрагентов, подчиненные текущему элементу справочника Контрагентов.
И, при добавлении нового договора на закладке "Счета и договоры" некоторые данные по текущему контрагенту проставляются автоматически.
Или же, вы хотите отследить не менял ли кто данные в договорах контрагента без вашего ведома?

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Напишу немного поподробнее, может подскажите, как действительно правильно лучше реализовать. Конфигурация нетиповая, самописная. Задача следующая. Имеем справочник "контрагенты". В нем есть несколько ревизитов типа булево "Поставщик", "Арендодатель", "Подрядчик" и т.д. Один контрагент может быть, к примеру, одновременно и поставщиком и арендотателем. Также имеем табличную часть, состоящую из 2 колонок "Тип отношений"(Перечисление.ТипыОтношений) и "Значение характеристик"(Справочник.ХарактеристикиКонтрагентов). В зависимости от поставленных галочек в колонке Тип отношений нам даст выбрать либо Постащик, либо Арендотель и т.д. ну и соответственно их характеристику. К примеру:
контрагент ООО "Добрый гном"
табличная часть:
Тип отношений   Значение характеристики
Постащик              Поставка окон
Поставщик             Поставка досок
Подрядчик             Подряд №1 и т.д.

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

Оффлайн Codokopatel

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 9
  • КПД: 38%
  • Регистрация: 2013-05-02
  • Сайт: 
  • Профессия: Программист 1С
Судя по Вашему описания у вас есть некоторые недочеты  в структуре Вашей БД.
Во-первых: это избыточность информации. То есть, значения характеристик повторяются и в справочнике "Контрагенты" и в справочнике "Договора".
Во-вторых: у Вас присутствует лишние "прогоны" данных между справочниками. При создании нового договора происходит запрос данных из справочника "Контрагенты" и размещение их в справочнике "Договора". Затем, при записи данных в справочнике "Договора", данные пересылаются обратно в справочник "Контрагенты". А это не очень хорошо сказывается на производительности.
И еще есть один подводный камень. Вы пишите, что в договоре возможно придется что-то менять: добавлять или удалять. При такой постановке вопроса, Вам точно придется использовать регистры сведений. Ведь может быть такая ситуация - контрагент ООО "Добрый гном" регулярно поставляет вам гвозди и доски, а однажды по случаю продал вашей фирме красивую вазу для холла. Эта поставка была разовая и, скорее всего, она более не повторится. Как быть с  такой поставкой. Если её внести в договор вместе с гвоздями и досками, то она будет выглядеть не совсем уместной. Она перенесется в справочник "Контрагенты", а затем, при создании нового договора  с данным поставщиком запись  о поставке вазы отразится вместе с гвоздями и досками. Оператор создавший новый договор со спокойной совестью удалит запись о вазе из договора (ведь новом договоре о вазе нет и речи), но, при этом, запись о вазе исчезнет и в контрагенте. Как говорится: "Вот она была и нету".

Я бы сделал так.

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

Справочник "Договора" (а может даже лучше документ "Договора") содержит:
Тип отношений (поставка, подряд, аренда и т.п.);
Табличную часть со значениями характеристик;
и т.п.
Для каждого статуса контрагента (арендодатель, поставщик, и.т.п.) создается свой договор.
Для каждой разовой хозяйственной операции, также создается отдельный договор. Тогда, ничего не потеряется и упроститься отчетность по контрагенту.
А при необходимости получить данные о хозяйственных взаимоотношениях с контрагентом есть такой инструмент как отчет, который предоставит информацию в любом желаемом разрезе.

Моё мнение - Вам надо перекроить структуру Вашей БД.
И прочитайте популярную статью "Нормализация баз данных", это поможет в дальнейшем избежать многих ошибок при проектировании БД.
ПРИМЕЧАНИЕ. Дальше третей формы не изучайте. И поищите статью, где объяснения даются простым языком, без математической зауми.

Если будут вопросы можете писать мне на email.
Просто, я не знаю интересна ли еще остальным участникам форума данная тема.

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Спасибо огромное за разъяснения, на "волшебную" кнопку нажала.


Теги:
 

"Уникальность" строки таблиной части документа

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 1961
Последний ответ 20 Авг 2014, 12:22
от has
Работа с табличной частью в документе. Или Работа с ШАПКОЙ документа

Автор gorbach178500Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3066
Последний ответ 30 Сен 2011, 20:01
от gorbach178500
Изменение цвета при подборе сотрудника в форме списка справочника "Сотрудники организации" для документа "Зарплата к выплате организаций" ЗУП 2.5

Автор ksander-farsРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 278
Последний ответ 12 Окт 2017, 14:02
от wise
УТ 11ред. Есть ли возможность указать серии в заказе покупателя?( в табл. части)

Автор tsaboevРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3100
Последний ответ 02 Июл 2012, 13:11
от totutotam
Применять ПСН относительно доходов, полученных от субаренды части нежилого помещения, нельзя

Автор newsРаздел Новости

Ответов: 0
Просмотров: 672
Последний ответ 23 Июн 2015, 14:25
от news

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
141 Сообщений
AIFrame
73 Сообщений
ilyay ilyay
65 Сообщений
alex0402
52 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
BuhRust
31 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 331
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal