|   |   | 
| 
 | Директива на сервере | ☑ | ||
|---|---|---|---|---|
| 0
    
        Borteg 05.06.14✎ 11:55 | 
        С клиента вызываю сервер с директивой на сервере(тоесть передаю весь контекст формы), при вызове из этой серверной процедуры еще одной серверной процедуры я снова передам кучу данных формы?, или уже форма существует на сервере и не будет передачи контекста всей формы.     | |||
| 1
    
        H A D G E H O G s 05.06.14✎ 11:56 | 
        (0) нет, не передашь. Все уже на сервере, не боись.     | |||
| 2
    
        Borteg 05.06.14✎ 11:56 | 
        (1) спасибо)     | |||
| 3
    
        Fragster гуру 05.06.14✎ 12:00 | 
        вообще контекстные вызовы зло.
 http://infostart.ru/public/198264/ выводит время контекстного и неконтекстного вызова - там разница в десять и более раз легко может быть | |||
| 4
    
        Borteg 05.06.14✎ 12:06 | 
        (3) Я понимаю, но у меня огромная ТЧ около 10000 строк. Потом из этих строк создаются документы Около 6000-7000. Общее время работы 3-4 часа. Я в начале просто вызываю сразу сервер и там  Для каждого Строка из объект.мояТч Цикл
 и поехали там процедуры создания документов КонецЦикла | |||
| 5
    
        Borteg 05.06.14✎ 12:07 | 
        (3) Делал через БСП. Фоновое задание и создание документов -не  понравилось както.     | |||
| 6
    
        Fragster гуру 05.06.14✎ 12:07 | 
        а эти 10 килострок - они как беруться? может их вообще на клиент не надо тянуть?     | |||
| 7
    
        Borteg 05.06.14✎ 12:09 | 
        (6) Они из веб системы берутся, запрос к веб системе, она выдает xml файл, я его разбираю. Там просто иногда контрагенты не определяются например, или еще чтото. Там много проверок всяких. 
 Я просто че заморочился в 2.0 подобная загрузка отрабатывала за час, в 3.0 3-4 часа | |||
| 8
    
        Borteg 05.06.14✎ 12:11 | 
        (7)Тоесть ТЧ появляется и говорит не найден контрагент, не правильный код агента, инн, договор, направление итд итп. Они правят руками обычно это 5-6 минут и ждут кнопку создать документы. И начинается. 3.0 умирает 3-4 часа, в 2.0 проблем вообще не было.     | |||
| 9
    
        Borteg 05.06.14✎ 12:12 | 
        (8) у меня ощущение что проведение самих документов в 3.0 намного дольше. Да и работы пользователей тоже заметно медленнее стала..     | |||
| 10
    
        H A D G E H O G s 05.06.14✎ 12:12 | 
        (8) Ты что-то делаешь не так.     | |||
| 11
    
        H A D G E H O G s 05.06.14✎ 12:15 | 
        ТЧ в Тонком умирает на over 100000 строк *30 колонок.
 Именно умирает - каждый скролл грузит сервер вумат на пару минут. Лечит разбитие ТЧ на блоки по 10000 строк. - там все влет отрабатывает | |||
| 12
    
        H A D G E H O G s 05.06.14✎ 12:16 | 
        " процедуры создания документов " - тормоза там.
 Поиск контрагентов по коду, номенклатуры по артикулу в цикле без кэширования - вот тебе и ответ | |||
| 13
    
        acsent 05.06.14✎ 12:18 | 
        (12) с каких пор поиск элемента по индексу стал таким ресурсоемким?     | |||
| 14
    
        Borteg 05.06.14✎ 12:18 | 
        (12) Да все это находится на форме, есть закладка настройки там все лежит, никаких поисков по коду ничего такого нету, все грубо берется из настроек. 
 Может это тормозить типа РТИУ.СтрокаТЧ.Номенклатура = Объект.НомеклатураРТИУ; Может лучше собирать ее например в структура и с помощью ЗаполнитьЗначенияСвойств отбивать? | |||
| 15
    
        Fragster гуру 05.06.14✎ 12:22 | 
        (13) если оно в цикле     | |||
| 16
    
        H A D G E H O G s 05.06.14✎ 12:23 | 
        (14) Давай, показывай обработку.     | |||
| 17
    
        hhhh 05.06.14✎ 12:24 | 
        (14) ЗаполнитьЗначенияСвойств - тормозней, чем присваивание. Она для облегчения труда 1с-ников сделана, а не для производительности.     | |||
| 18
    
        Borteg 05.06.14✎ 12:25 | 
        ДокументУслуг = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
 ДокументУслуг.Организация = Организация; ДокументУслуг.Ответственный = ПараметрыСеанса.ТекущийПользователь; ДокументУслуг.Дата = КонецДня(Объект.КонецПериода); ДокументУслуг.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Услуги; ДокументУслуг.Контрагент = КонтрагентПост; ДокументУслуг.ДоговорКонтрагента = ДоговорПост; ДокументУслуг.ВалютаДокумента = Константы.ВалютаРегламентированногоУчета.Получить(); ДокументУслуг.Грузоотправитель = КонтрагентПост; ДокументУслуг.КратностьВзаиморасчетов = 1; ДокументУслуг.КурсВзаиморасчетов = 1; ДокументУслуг.Комментарий = КомментарийПост.Значение; ДокументУслуг.НомерВходящегоДокумента = "б/н"; ДокументУслуг.ДатаВходящегоДокумента = КонецДня(Объект.КонецПериода); ДокументУслуг.СуммаВключаетНДС = Истина; ДокументУслуг.СчетУчетаРасчетовСКонтрагентом = Объект.СчетУчетаРасчетовСКонтрагентамиПТиУ; ДокументУслуг.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.НеЗачитывать; //Агентское вознаграждение Если (СуммаПост - СтрахВознПост) <> 0 Тогда НовСтрока = ДокументУслуг.Услуги.Добавить(); НовСтрока.Количество = 1; НовСтрока.Номенклатура = Объект.НоменклатураПТиУ; НовСтрока.Сумма = СуммаПост - СтрахВознПост; Если НЕ НДСПост = 0 Тогда Если СтрахВознПост <> 0 тогда НовСтрока.СуммаНДС = НДСПост - Окр(СтрахВознПост*18/118,2); иначе НовСтрока.СуммаНДС = НДСПост; КонецЕсли; иначе НовСтрока.СуммаНДС = 0; КонецЕсли; НовСтрока.Цена = НовСтрока.Сумма; Если Не НовСтрока.СуммаНДС = 0 Тогда Новстрока.СтавкаНДС = Перечисления.СтавкиНДС.НДС18; Иначе Новстрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС; КонецЕсли; НовСтрока.СчетЗатрат = Объект.СчетЗатратПТиУ; НовСтрока.ПодразделениеЗатрат = Объект.ПодразделениеЗатратПТиУ; НовСтрока.Содержание = Объект.НоменклатураПТиУ.НаименованиеПолное; НовСтрока.Субконто1 = Объект.Субконто1ПТиУ; НовСтрока.Субконто2 = Объект.Субконто2ПТиУ; НовСтрока.СчетЗатратНУ = Объект.СчетЗатратПТиУ; НовСтрока.СубконтоНУ1 =Объект.Субконто1ПТиУ; НовСтрока.СубконтоНУ2 = Объект.Субконто2ПТиУ; НовСтрока.СчетУчетаНДС = Объект.СчетУчетаНДСПТиУ; КонецЕсли; //Страховка Если СтрахВознПост <> 0 тогда НовСтрока = ДокументУслуг.Услуги.Добавить(); НовСтрока.Количество = 1; НовСтрока.Номенклатура = Объект.НоменклатураСтрахованияПТиУ; НовСтрока.Сумма = СтрахВознПост; Если НЕ НДСПост = 0 Тогда НовСтрока.СуммаНДС = Окр(СтрахВознПост*18/118,2); Иначе НовСтрока.СуммаНДС = 0; КонецЕсли; НовСтрока.Цена = СтрахВознПост; Если Не НовСтрока.СуммаНДС=0 Тогда Новстрока.СтавкаНДС = Перечисления.СтавкиНДС.НДС18; Иначе Новстрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС; КонецЕсли; НовСтрока.ПодразделениеЗатрат = Объект.ПодразделениеЗатратПТиУСтрахование; НовСтрока.Содержание = Объект.НоменклатураСтрахованияПТиУ.НаименованиеПолное; НовСтрока.СчетЗатрат = Объект.СчетЗатратПТиУСтрахование; НовСтрока.Субконто1 = Объект.Субконто1ПТиУСтрахование; НовСтрока.Субконто2 = Объект.Субконто2ПТиУСтрахование; НовСтрока.СчетЗатратНУ =Объект.СчетЗатратПТиУСтрахование; НовСтрока.СубконтоНУ1 = Объект.Субконто1ПТиУСтрахование; НовСтрока.СубконтоНУ2 = Объект.Субконто2ПТиУСтрахование; НовСтрока.СчетУчетаНДС = Объект.СчетУчетаНДСПТиУСтрахование КонецЕсли; Попытка ДокументУслуг.Записать(РежимЗаписиДокумента.Проведение); Исключение ДокументУслуг.Записать(РежимЗаписиДокумента.Запись); Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "Документ не проведен: " + ДокументУслуг.Ссылка; Сообщение.УстановитьДанные(ДокументУслуг); Сообщение.Сообщить(); КонецПопытки; Если Не НДСПост = 0 Тогда Попытка СчетФактура = УчетНДСПереопределяемый.СоздатьСчетФактуруПолученныйНаОсновании(ДокументУслуг.Ссылка, "б/н",КонецДня(Объект.КонецПериода), ); Исключение Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "Проверьте счет фактуру: " + СчетФактура; Сообщение.УстановитьДанные(СчетФактура.ПолучитьОбъект()); Сообщение.Сообщить(); КонецПопытки КонецЕсли; | |||
| 19
    
        Borteg 05.06.14✎ 12:26 | 
        Ну вот так примерно все документы и реализации тоже также заполняются СФ тоже типовым заполнением на основании делается     | |||
| 20
    
        Borteg 05.06.14✎ 12:26 | 
        ну по сравнению с 2.0 создание намного дольше, мне кажется что сама бухгалтерия 3.0 просто медленее     | |||
| 21
    
        Borteg 05.06.14✎ 12:26 | 
        &НаСервере
 Функция СоздатьПоступлениеТоваровИУслуг(КонтрагентПост,ДоговорПост,СуммаПост,НДСПост,СтрахВознПост = 0,КомментарийПост) | |||
| 22
    
        H A D G E H O G s 05.06.14✎ 12:28 | 
        (21) Тормозит (18) ?
 Или все-же тормозит то, что создается на основании 10000 строк табличной части? | |||
| 23
    
        Borteg 05.06.14✎ 12:28 | 
        Если СтрокаТч.ОказУсл <> 0 тогда
 Документ = СоздатьПоступлениеТоваровИУслуг(СтрокаТч.Контрагент,СтрокаТч.Договор,СтрокаТч.ОказУсл,СтрокаТч.НдсОказУсл,0,Комментарий); КонецЕсли; Ну а вот так она вызывается в цикле с серверной процедуры куда я весь контекст передал один раз | |||
| 24
    
        Fragster гуру 05.06.14✎ 12:28 | 
        ну так ты замер производительности-то сделал, чтобы определить места тормозов? или все занимает по 2%?     | |||
| 25
    
        acsent 05.06.14✎ 12:28 | 
        Серверная версия? Есть подозрение на блокировки. Попробуй для начала константу читать 1 раз     | |||
| 26
    
        H A D G E H O G s 05.06.14✎ 12:29 | 
        (23) ну вооот     | |||
| 27
    
        H A D G E H O G s 05.06.14✎ 12:29 | 
        Все стало ясно     | |||
| 28
    
        H A D G E H O G s 05.06.14✎ 12:29 | 
        Контекстный вызов сервера для каждой строки?     | |||
| 29
    
        Fragster гуру 05.06.14✎ 12:30 | 
        т.е. (18) на клиенте, а (23) - переход на сервер в цикле? или что?     | |||
| 30
    
        H A D G E H O G s 05.06.14✎ 12:30 | 
        Если СтрокаТч.ОказУсл <> 0 тогда
 Документ = СоздатьПоступлениеТоваровИУслуг(СтрокаТч.Контрагент,СтрокаТч.Договор,СтрокаТч.ОказУсл,СтрокаТч.НдсОказУсл,0,Комментарий); КонецЕсли; Это - на сервере? | |||
| 31
    
        Borteg 05.06.14✎ 12:30 | 
        (27) нет это серверная процедура я в нее передела все,
 тоесть на сервер передал, начал там перебирать объектТч и вызывать ту процедуру сверху, контекст один раз приехал, это не с клиента. | |||
| 32
    
        H A D G E H O G s 05.06.14✎ 12:30 | 
        скинь обработку, не мучай никого     | |||
| 33
    
        Borteg 05.06.14✎ 12:30 | 
        (30) да     | |||
| 34
    
        Borteg 05.06.14✎ 12:32 | 
        (32) да не мучаю)) я что хотел узнал))) я думал что с сервера на сервер может гоняю контекст)) сейчас помучаюсь еще) Я суть уловил как надо, просто само проведение документов куда медленее, да и вообще 8.3 платформа у меня с памятью проблемы на сервере, не освобождается, да и медленее все стало...Скорее всего проблемы в этом. Проведение документов, работа с ними просто у пользователей медленее..     | |||
| 35
    
        Borteg 05.06.14✎ 13:21 | 
        Хм задам  может еще один глупый вопрос) У меня почти вся логика в  модуле формы, в типовых используется чаще модуль объекта и менеджера, я прекрасно понимаю что и как можно сделать и зачем это обычно делается, но влияет ли это на скорость?? Если я например создание документов делаю в модуле формы.     | |||
| 36
    
        H A D G E H O G s 05.06.14✎ 13:26 | 
        (35) Не влияет.
 Делается для внеинтерфейсной работы. | |||
| 37
    
        Borteg 05.06.14✎ 13:26 | 
        (36) Спасибо))     | |||
| 38
    
        Borteg 05.06.14✎ 13:36 | 
        По проблеме впринципе все ясно. Я не учел что 3.0 у нас с бит финансом и при проведении делаются проводки по бюджетам бит итдп итп в 2.0 такого не было. + по передачи данных. Сделал такую гадость начал гонять между клиентом и сервером контекст формы на каждый документ и поставил там состояние чтобы смотреть скорость создания документов. При это обнаружил что данные практически не гоняются туда сюда , разница между таким кодом и правильным примерно в 3 минуты. Читал в проф разработке давно чтото вроде того что между сервером и клиентом гоняются только измененные данные(что то такое точно было) поэтому при нашем варианте когда все в локалке быстрой не сильно сказывается на работе, единственное конечно вызовов много))изза этого наверное и разница в 3 минуты между двумя этими вариантами. Как то так получилось.     | |||
| 39
    
        Borteg 05.06.14✎ 13:37 | 
        (38) попробую еще внеконтекстные вызовы сделать, по фэньшую совсем, скажу что там получится, но кажется скорость не сильно увеличится, по замеру проведение документов сильно много тянет. С битом вообще тяжко походу.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |