Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 17:32

Передача данных Клиент-Серевер в обычных приложениях 1С

Автор Funt432286, 25 окт 2024, 14:37

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

antoneus

Цитата: Funt432286 от 18 ноя 2024, 17:18Просто на одной машине все расставишь по порядку (т.е. раскидаешь порядка 25-30 записей) на другом компьютере изменили реквизит записи и все, везде слетел порядок расставленный ранее!

То есть обмен все-таки происходит?

Funt432286

antoneus, обмен происходит в одностороннем порядке:
Данные получаю через "Запрос", а записываю через СоздатьНаборЗаписей(), но пока сервер обновит данные с клиента на сервер, проходит много времени, так как с этими данными параллельно работают на других клиентах.

А как сделать чтобы на одно машине измененные данные уходили сразу на сервер, на других машинах обновлялись с сервевра!

antoneus

Много времени - это сколько? Как проводили замеры?

Funt432286

antoneus, пару минут

вопрос то в другом: программная передача данных с клиента на сервер и обратно!?

antoneus

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

Максим75

Funt432286, ну нет такого, тем более на обычных формах.
есть СУБД на котором крутится сама база, явно же к базе через удаленный рабочий стол подключаетесь.
за запись данных в таблицы базы отвечает сама платформа и СУБД. разве что у Вас происходит блокировка регистра при записи и запрос тупо не может ничего с базы считать по нему, пока блок не отпустит.

Funt432286

antoneus,
Это перечень записей регистра сведений, который выводится по условию через "Запрос"
расстановка порядка записей происходит вручную, при перестановке записи данные номера строки записываются в реквизит регистра записи

    Для Каждого СтрТЧ из ОбработкаОбъект.ТЧ_РоландСтарый Цикл
        СтрТЧ.НомерОчереди = СтрТЧ.НомерСтроки;
        // запись СОСТОЯНИЯ в регистр сведений
        Набор = РегистрыСведений.А_ПланированиеЗаказов.СоздатьНаборЗаписей();
        Если ЗначениеЗаполнено(СтрТЧ.Красочность) Тогда
            Набор.Отбор.СсылкаРЗ.Установить(СтрТЧ.СсылкаРЗ);
            Набор.Отбор.НомПрогон.Установить(СтрТЧ.НомПрогон);
        Иначе
            Набор.Отбор.Заказчик.Установить(СтрТЧ.Заказчик);
            Набор.Отбор.ОборудДубль.Установить(Справочники.П_Оборудование.НайтиПоНаименованию(СтрТЧ.ПечатьРоланд));
        КонецЕсли;
        Набор.Прочитать();
        Если Набор.Количество() Тогда
            Запись = Набор[0];
            Запись.НомерОчереди = Строка(СтрТЧ.НомерОчереди);
            Набор.Записать(
                Истина // замещать, если уже есть запись с такими же измерениями
                // и таким же периодом
            );
        КонецЕсли;
    КонецЦикла;

после чего обновляешь через пару минут этот же список на другом компьютере порядок в списке иногда меняется, иногда не меняется.
А когда через пару минут обновляешь список на том компьютере, на котором менял порядок, список так же иногда остается поменяным, а иногда возвращается к прежнему порядку!


Funt432286

вот как такое может быть:

Есть исходный порядок строк (первая картинка), я меняю положение строк в таблице (последняя картинка) и через нажатие на кнопку Сохранить (код поиска регистра и остановки тоже заснят), записываю данные в Регистр (код представлен ниже)

Набор = РегистрыСведений.А_ПланПреПресс.СоздатьНаборЗаписей();
Набор.Отбор.РасчетЗаказа.Установить(Стр.РасчетЗаказа);
Набор.Отбор.СтатусЗаказаОтдел.Установить("Макет");
Набор.Прочитать();
Если Набор.Количество() Тогда
Запись = Набор[0];
Запись.НомерОчереди = Стр.НомерСтроки;
Набор.Записать(
        Истина // замещать, если уже есть запись с такими же измерениями
        // и таким же периодом
    );
КонецЕсли;

а после открытия формы, порядок не меняется, а остается тем же!

Максим75

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

Funt432286

Максим75, попробовал, открыл регистр, там данные не записаны!

Реквизит Запись.НомерОчереди совсем пустой и ничего там не записано, хотя при установке Точки останова, программа попадает в условие Если, что осзначает что выборка регистра происходит! Почему тогда не записывает?

Может записывать через Запрос, т.е сначало искать запись регистра через запрос, а потом записывать измененные данные!?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск