Версия для печати темы (https://pro1c.org.ua/index.php?s=16b671150a27cd62475de7b5d431c2f9&showtopic=41994)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Сохранение данных в обработке

Автор: A.Frost89 17.11.17, 14:42

Добрый день, Уважаемые товарищи. На основе некой обработки, взятой с просторов интернета, переделав её под себя ,столкнулся с тем, что.. Простите, не с того начал. Обработка для Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.52.36), предназначена для печати транспортной накладной, с возможностью забивки нужных данных,вида, водитель, адрес погрузки, данные о грузе и прочее. Подошли к главному Столкнулся с тем, что внесенные данные, одним пользователем, не отображаются у других пользователей, использующих данную обработку. Т.е. если Иванов, ввел данные,беря инфу из справочников физ.лиц и контрагентов, сохранил, записал, напечатал и закрыл окно, у него при открытии, информация сохранится, а вот если Петров откроет на данном документе ту же обработку, то внесенной информации не будет. Посоветуйте как быть. Как сделать так, чтобы другие пользователи видели внесенные первоначальные данные, и чтобы не было путаницы, и повторного внесения информации(правильной аль нет).
Хоть заранее и не благодарят, но все равно Благодарю Вас всех!


 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 4,5
 

Автор: Petre 17.11.17, 14:54

A.Frost89 @ Сегодня, 15:42 * ,
Используйте для сохранения данных дополнительные свойства.

Автор: Bernet 17.11.17, 15:09

Petre @ Сегодня, 14:54 * ,
Можно сохранять настройки в регистр сведений и подгружать их при открытии.
Посмотрите регистр сведений "Сохраненные настройки"

Автор: A.Frost89 17.11.17, 15:22

Понял вас всех, буду смотреть регистры сведений. Спасибо большое за совет!

Автор: Petre 17.11.17, 15:43

Bernet @ Сегодня, 16:09 * ,
РС "Сохраненные настройки" принципиально не подойдут, т.к. нет возможности привязать данные к конкретному документу (нет подходящего измерения).

Автор: Bernet 17.11.17, 15:45

Petre @ Сегодня, 15:43 * ,
А зачем? У нас в переписанной УТП использовался этот регистр для хранения общих каких-то настроек. Задавали просто ИмяНастройки и саму настройку и подтягивали где нужно - работает

Автор: Petre 17.11.17, 16:50

Bernet @ Сегодня, 16:45 * ,
Ну как "зачем". Каждый документ (ссылка) имеет свой набор значений.
Или вы предлагаете наборы значений всех документов хранить в одной записи рс? Тогда в какой-то момент наступит коллапс.

Автор: Bernet 17.11.17, 17:02

Petre @ Сегодня, 16:50 * ,
так при чем тут документы, я походу чего-то не допонял? тут речь идет о настройках печати ТТН для всех пользователей, чтобы одна настройка применялась ко всем - берем раз записываем настройку в РС "Сохраненные настройки", получится такая запись:
Измерения:
- Пользователь - останется пустая ссылка;
- ИмяОбъекта - пишем "ОбработкаПечатиТТН" (тип Строка);
- НаименованиеНастройки - пишем "НастройкиПечатиТТН (тип Строка)";
Ресурсы:
- СохраненнаяНастройка - пишем ХранилищеЗначений, куда запихиваем структуру вида СтруктураДанных.Водитель, СтруктураДанных.АдресПогрузки и т.д. все что нужно запихнули в структуру, структуру обернули Хранилищем значений;
Записали запись.

При открытии этой обработки вычитываем значение из регистра по имени объекта и наименованию настройки:

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    СохраненныеНастройки.Пользователь,
               |    СохраненныеНастройки.ИмяОбъекта,
               |    СохраненныеНастройки.НаименованиеНастройки,
               |    СохраненныеНастройки.СохраненнаяНастройка
               |ИЗ
               |    РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
               |ГДЕ
               |    СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
               |    И СохраненныеНастройки.НаименованиеНастройки = &ИмяНастройки
               |";

Запрос.УстановитьПараметр("ИмяОбъекта", "ОбработкаПечатиТТН");
Запрос.УстановитьПараметр("ИмяНастройки", "НастройкиПечатиТТН");

Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
    
    Выборка = Результат.Выбрать();
    Выборка.Следующий();
    
    НашаНастройка = Выборка.СохраненнаяНастройка;
    
    СтруктураДанных = НашаНастройка.Получить();
    
    // получили структуру данных, теперь восстанавливаем значения
    
    НашВодитель = СтруктураДанных.Водитель;
    АдресПогрузки = СтруктураДанных.АдресПогрузки;
    
    // и т.д.
    
КонецЕсли;


Для того чтобы первый раз сохранить эту настройку я бы на форме сделал кноповку "Сохранить настройки" где и считывал бы данные с формы и раз записал в регистр. А дальше при открытии кодом выше считывал бы всем пользователям и усе

Автор: Petre 17.11.17, 17:49

Bernet @ Сегодня, 18:02 * ,
Как я понял, речь о хранении данных ТТН для каждого документа: грузополучатель, перевозчик, водитель, автомобиль, адреса погрузки / разгрузки и т. д.

Автор: Bernet 17.11.17, 17:52

Petre @ Сегодня, 17:49 * ,
ну может и так, хотя я вроде бы у автора в посте такого не увидел. Но в таком случае лучше уже не обработкой пользоваться, если эти значения постоянно меняются а нужно хранить историю по каждой реализации то документ в помощь =)
Создаем новый документ с печатной формой и не паримся)

Автор: A.Frost89 20.11.17, 7:16

Bernet @ 17.11.17, 18:52 * ,
Доброе утро! В экспедиции, есть три сотрудника, которые печатают ТТН. Стандартную форму, они заполняли вручную, что им не нравилось, ввиду того, что введенная информация там не сохраняется и к тому же, не все нужные пункты можно заполнить.(Несколько контрагентов запросили пакет отгрузочных документов за прошлый год, а там поди вспомни, кем и что было заполнено в ттн).Вот и просили сделать отдельно, с возможностью ввода нужных данных, и чтобы сохранялось все, что они ввели. Сейчас у меня получается, что один кладовщик, который заполнил данные у себя на компьютере, ее видит, а второй и третий кладовщики, эту информацию уже не видят. И получается, что каждому кладовщику приходится данные по новой вводить. Вот и обратился я за советом, как сделать так, чтобы введенная информация, занесенная одним кладовщиком ,выводилась и у остальных.

Автор: Bernet 20.11.17, 10:09

A.Frost89 @ Сегодня, 7:16 * ,
Вариантов это сделать масса, если всем этим трем пользователям надо подтягивать данные для автозаполнения одни и теже - можно использовать метод описанный мною выше.
Для того чтобы видеть всю историю - тут два варианта: либо делаете документ куда выводите все те поля что есть в обработке и добавляете печатную форму - вот вам и хранение истории, либо делаете регистр сведений, где есть все те необходимые поля, что есть в обработке и при каждой печати ТТН пишите в регистр историю. Я бы наверно выбрал все таки вариант с документом - с ним удобнее работать

Автор: Petre 20.11.17, 12:43

A.Frost89 @ Сегодня, 8:16 * ,
Я именно так и понял ситуацию. Дополнительные свойства - самый оптимальный вариант. Быстрый, без необходимости снимать с поддержки и создавать избыточную сущность.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua