Имя: Пароль:
1C
1С v8
Исчезли записи из регистра сведений
0 Lemkus
 
28.04.12
12:46
Клиент попросил сделать возможность ставить у заказов всякие там галочки о том, что заказы получены, счета отправлены и т. д. Сделал регистр сведений (непериод, независимый) и обработку, на форме которой разместил набор записей регистра сведений, при открытии обработки набор записей заполняется всеми проведенными заказами и через левое соединение с данными регистра сведений. Далее пользователь ставит свои галки, при закрытии обработки набор записей записывается. Так вот, почему-то из регистра исчезли проставленные пользователем галочки, но не все, а только некоторые. Я никак не могу понять, как такое могло быть. Прощу помощи, если я не объясню ситуацию, то видимо придется мне на выходных поработать оператором 1с
1 КМ155
 
28.04.12
12:47
(0)[при закрытии обработки набор записей записывается]
херовый отбор
2 Murzz
 
28.04.12
12:48
небось без отбора набор записываешь
3 Wobland
 
28.04.12
12:48
>при открытии обработки набор записей заполняется
что, прямо вот так берёшь и пишешь данные при открытии?
4 Lemkus
 
28.04.12
12:50
(3) Ну точнее заполняю набор записей
5 Lemkus
 
28.04.12
12:50
(2) А зачем там отбор, сначала все прочитали, потом все записываем
6 ptrtss
 
28.04.12
12:51
Видимо при очередном открытии в набор подгрузилось не все, а только часть
7 chingiz
 
28.04.12
12:51
Код скинь, будет уже о чем говорить.
8 ptrtss
 
28.04.12
12:52
"Всеми проведенными заказами" за всю историю что ли? Наверняка нет. А если записываешь без отбора, то все старое херится
9 Lemkus
 
28.04.12
12:52
Процедура ЗаполнитьСостояниеЗаказов()
   
   Запрос = новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ЗаказПокупателя.Ссылка
                  |ПОМЕСТИТЬ Заказы
                  |ИЗ
                  |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
                  |ГДЕ
                  |    ЗаказПокупателя.Проведен = ИСТИНА
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    СостояниеЗаказа.АктыПолучены,
                  |    СостояниеЗаказа.СчетОтправлен,
                  |    СостояниеЗаказа.Поступил,
                  |    СостояниеЗаказа.Запустили,
                  |    СостояниеЗаказа.Готовность,
                  |    СостояниеЗаказа.Скомплектован,
                  |    СостояниеЗаказа.Доставлен,
                  |    СостояниеЗаказа.Отгружен,
                  |    Заказы.Ссылка КАК Заказ,
                  |    Заказы.Ссылка.Контрагент КАК Контрагент,
                  |    Заказы.Ссылка.Дата КАК Дата,
                  |    Заказы.Ссылка.СостояниеЗаказа КАК Состояние
                  |ИЗ
                  |    Заказы КАК Заказы
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеЗаказа КАК СостояниеЗаказа
                  |        ПО Заказы.Ссылка = СостояниеЗаказа.Заказ
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    Дата УБЫВ";
   СостояниеЗаказов.Загрузить(Запрос.Выполнить().Выгрузить());
   
КонецПроцедуры
10 Ненавижу 1С
 
гуру
28.04.12
12:52
(5) во, правильно ))
11 Ненавижу 1С
 
гуру
28.04.12
12:53
(9) показывай больше
12 Lemkus
 
28.04.12
12:53
(9) СостояниеЗаказов это и есть набор записей регистра
13 Lemkus
 
28.04.12
12:54
(11) Ну и перед закрытием или при нажатии на кнопку записать

Ответ = Вопрос("Сохранить изменения?", РежимДиалогаВопрос.ДаНет);
   Если Ответ=КодВозвратаДиалога.Да тогда
        СостояниеЗаказов.Записать();
   КонецЕсли;
14 ptrtss
 
28.04.12
12:55
А на форме есть возможность табличку с галками дилит нажимать?
15 Ненавижу 1С
 
гуру
28.04.12
12:55
(13) отборы это для слабаков?
16 ptrtss
 
28.04.12
12:55
А заказы могут быть временно не проведены?
17 Lemkus
 
28.04.12
12:56
(16) не, дело не в это явно
18 Lemkus
 
28.04.12
12:57
(15) Согласен, отборы надо было сделать, но почему так не сработало
19 dmpl
 
28.04.12
13:12
(18) Сколько пользователей одновременно вводит эти документы? Может ли пользователь открыть одновременно более 1 документа? Если пользователей больше 1 или он может открыть одновременно 2 и более документа - то так и должно быть. Поддержание когерентности кешей - та еще задача.
20 Lemkus
 
28.04.12
13:17
(19) Да, пользователей более 1 и он может открыть 2 и более документа, но как это связано с регистром?
21 Starhan
 
28.04.12
13:19
(19)(20) ))))
22 Lemkus
 
28.04.12
13:22
(19), (21) Можно подробнее, пожалуйста
23 Адинэснег
 
28.04.12
13:33
v8: Исчезли записи из регистра сведений
бггг...
24 hhhh
 
28.04.12
13:42
(22) один документ ставит свои галки. Другой документ тут же стирает их и ставит свои.
25 Lemkus
 
28.04.12
13:43
(24) Не может такого быть, документы вообще ничего не ставят
26 Starhan
 
28.04.12
13:43
(22) Сам подумай. Что будет если обработку откроют два одновременно. Потом один запишет, потом второй?
27 Starhan
 
28.04.12
13:44
+(26) естественно 1й поставит пару своих галочек.
28 PR
 
28.04.12
13:45
(0) >>при закрытии обработки набор записей записывается
За такие вещи на конюшне порют.
29 PR
 
28.04.12
13:46
Судя по всему ТС прилежно выбирает из регистра записи по конкретному заказу, потом в наборе записей читает и очищает все без отбора по заказу и записывает в полностью очищенный регистр записи по одному заказу.
30 Lemkus
 
28.04.12
13:49
(29) Нет, запрос выше я приводил
31 Lemkus
 
28.04.12
13:50
(26) Да, действительно, теперь я понимаю, что так как я делал было делать нельзя. Но с обработкой одновременно работал только один пользователь
32 pumbaEO
 
28.04.12
13:50
(28) Вам на селезневку надо, разработчиков типовых пороть, пороть, пороть...

Процедура КнопкаOKНажатие(Элемент)

   // Запись значений свойств и закрытие формы.
   Если ОбработкаОбъектЗначенияСвойств.ЗаписатьЗначенияСвойств() Тогда
       Модифицированность = Ложь;
       Закрыть();
   КонецЕсли;

КонецПроцедуры
33 dmpl
 
28.04.12
13:51
(20) Пользователь 1 открыл документ 1. Пользователь 2 открыл документ 2. Пользователь 1 проставил галки и записал документ 1. Пользователь 2 поставил свои галки и записал документ 2. Тем самым от затер изменения, внесенные пользователем 1, ведь в его наборе записей осталась старая копия состояния галок по документу 1.
34 Starhan
 
28.04.12
13:52
(31) мог открыть в два окна обработку. Или запустить два раза конфу. и т.п.
35 Lemkus
 
28.04.12
13:57
(34) Ну да, похоже на правду, спасибо! я окончательно осознал чем плох мой способ решения задачи, видимо надо использовать форму регистра сведений или при записи ставить отбор на те документы, по которым пользователь что-то изменил
36 extrim-style
 
28.04.12
14:14
(35) Может кто подскажет - у меня такая штука: есть допустим 10 записей регистра сведений Сохраненные настройки, причем все разные. Иногда, допустим в пару раз в месяц из этих 10 пропадают, скажем, 2 первых, 2 последних и 5-ая. Есть свой самописный отчет, который делает записи в регистр, просмотрел код несколько раз - ошибки не нашел. База файловая - бэкап копией. Что тут может быть?
37 extrim-style
 
28.04.12
14:17
+ (35) отчет работает только с 2-мя записями по отбору