|
1С на ТСД зависает при вызове серверных процедур | ☑ | ||
---|---|---|---|---|
0
Юзер123
naïve
21.12.21
✎
12:48
|
Доброго рвемени.
ТСД в связке с самописной конфой. Идея простая. Сканируют Штрихкод номенклатуры - идет вызов серверной функции проверки номенклатуры (работатет быстро возвращает код). Далее если номенклатура найдена открывается форма ввода количества. Если количество не 0 то добавляется строка в документ ( добавление в документ - серверная процедура и она зависает при вызове). |
|||
1
Юзер123
naïve
21.12.21
✎
12:48
|
Количество = ОткрытьФормуМодально("Документ.СписаниеНоменклатуры.Форма.ВводКоличества");
Если не Количество = 0 тогда ЗаполнитьТаблицуНаСервере(Штрихкод, Количество); КонецЕсли; |
|||
2
Юзер123
naïve
21.12.21
✎
12:49
|
Отладку включали.
При включеной отладки ЗаполнитьТаблицуНаСервере(Штрихкод, Количество); - начинает подвисать конфигуратор. но по точкам останова прыгает с задержкой 30 сек до минуты. |
|||
3
Юзер123
naïve
21.12.21
✎
12:50
|
с выключеной отладкой вообще ничего не происходит. клиент на ТСД висит какое то время после чего выдает ошибку.
|
|||
4
acht
21.12.21
✎
12:50
|
ОФигеть! Как вы этого добились?
|
|||
5
lucbak
21.12.21
✎
12:51
|
(2) Даже интересно между чем и чем проходит до 30 секунд?
|
|||
6
Юзер123
naïve
21.12.21
✎
12:52
|
(5) между ЗаполнитьТаблицуНаСервере(Штрихкод, Количество);
и &НаСервере Процедура ЗаполнитьТаблицуНаСервере(Штрихкод, Количество) ----> аа =1; Остановом тут |
|||
7
Юзер123
naïve
21.12.21
✎
12:53
|
(5) все это время конфигуратор в подвисшем состоянии
|
|||
8
acht
21.12.21
✎
12:59
|
(7) Контекстный вызов во всей красе. Красивая форма едет полностью на сервер по дохлому каналу. &НаСервереБезКонтекста может помочь.
|
|||
9
Юзер123
naïve
21.12.21
✎
13:00
|
Вопрос в другом. Если код не мнялся. ТСД не менялся. В чем может быть причина таких глюков. единственное что было из проишествий - отклюяался свет.
|
|||
10
Юзер123
naïve
21.12.21
✎
13:00
|
(8) почему первая сервыерная функция отрабатывает в секунду? та что ищет номенклатуру по штрихкоду?. . .
|
|||
11
H A D G E H O G s
21.12.21
✎
13:02
|
Ну и отладка по HTTP через vpn-анус админа с петлей трафика в Ленинск-Кузнецкий провайдер.
Смех - смехом, а мех мехом. Был клиент с магазинами в МСК и сервером в МСК, у которого ТонкиеКлиенты печатали чеки с заходом трафика в Питер. |
|||
12
Юзер123
naïve
21.12.21
✎
13:02
|
(11) без отладки зависает вообще
|
|||
13
Юзер123
naïve
21.12.21
✎
13:03
|
(11) с отладкой подвисает на точках но отрабатывает
|
|||
14
acht
21.12.21
✎
13:03
|
(9) > единственное что было из проишествий
Начинается... Чистите кэши, продувайте пепельницы |
|||
15
acht
21.12.21
✎
13:04
|
(10) > почему первая
Для полноценной диагностики необходима фотография базы во второй день полнолуния и клок волос из подмышки админа. |
|||
16
Юзер123
naïve
21.12.21
✎
13:05
|
(14) это сделано в первую очередь было. 2 разных терминала юзали. Диагноз 1. Базу переносили на разные компы.
|
|||
17
Юзер123
naïve
21.12.21
✎
13:05
|
(15) я бы просто перечню причин подобного поведения был бы рад очень.
|
|||
18
H A D G E H O G s
21.12.21
✎
13:06
|
Работайте с отладкой.
Я бы даже документацию под это дело оформил, а автор пока пусть штатную должность у руководства выбивает, чтобы тело f11 жало по кд. |
|||
19
Юзер123
naïve
21.12.21
✎
13:07
|
Номенклатура = ПроверитьНаличиеНоменклатуры(Штрихкод); серверная функция работает.
ЗаполнитьТаблицуНаСервере(Штрихкод, Количество); - серверная процедура зависает. |
|||
20
Юзер123
naïve
21.12.21
✎
13:09
|
(18) Петросенко просто. вас в смехопонараму без собеседования возьмут. По сабжу 0 полезности.
|
|||
21
Юзер123
naïve
21.12.21
✎
13:10
|
смехопанораму * простите
|
|||
22
H A D G E H O G s
21.12.21
✎
13:13
|
1С просто. Такая. Любит, когда смотрят...
|
|||
23
Другая
21.12.21
✎
13:15
|
(22) шли 10е бессонные сутки внедрения ERP
|
|||
24
Галахад
гуру
21.12.21
✎
13:24
|
Оно вообще как работает?
Мобильная платформа и HTTP vs WEB-сервисы? RDP-клиент? |
|||
25
Юзер123
naïve
21.12.21
✎
13:25
|
(24) Мобильная платформа и HTTP vs WEB-сервисы?
|
|||
26
Юзер123
naïve
21.12.21
✎
13:25
|
(24) Мобильная платформа и HTTP vs WEB-сервисы!!!
|
|||
27
Галахад
гуру
21.12.21
✎
13:27
|
Хм. И форма модально на мобилке открывается?
А "ЗаполнитьТаблицуНаСервере" что делает? |
|||
28
Юзер123
naïve
21.12.21
✎
13:44
|
(27) в документ строки добавляет.
|
|||
29
Юзер123
naïve
21.12.21
✎
13:45
|
(28) с номенклатурой из
Номенклатура = ПроверитьНаличиеНоменклатуры(Штрихкод); и количеством введенным. Я думал про модальность. В итоге закоментил открытие формы и количество прописал . ошибка не ушла. //Количество = ОткрытьФормуМодально("Документ.СписаниеНоменклатуры.Форма.ВводКоличества"); Количество = 5; ЗаполнитьТаблицуНаСервере(Штрихкод, Количество); |
|||
30
arsik
гуру
21.12.21
✎
13:49
|
(29) Все таки &НаСервереБезКонтекста пробовал?
|
|||
31
Галахад
гуру
21.12.21
✎
13:50
|
(29) А что за документ? В большой 1С? А как его находит?
Зачем вообще два шага. 1. Поиск. 2. Поиск и добавление. Когда можно обойтись 2. |
|||
32
Юзер123
naïve
21.12.21
✎
13:53
|
(30) переписываю код под это.
|
|||
33
Юзер123
naïve
21.12.21
✎
13:53
|
(31) не спорю. Можно. Оптимизировать код до бесконечности.
Вопрос в том что это работало. И хотелось бы причину понять такого поведения |
|||
34
H A D G E H O G s
21.12.21
✎
14:05
|
1000 причин. начиная от отображения деревом, до мертвого кеша
|
|||
35
Галахад
гуру
21.12.21
✎
14:12
|
(33) Довольно часто причина в ошибках в коде...
|
|||
36
Злопчинский
21.12.21
✎
14:13
|
Уронил скупую клюшечную слезу...
Отвечу за H A D G E H O G s: "вы их готовить не умеете..." |
|||
37
Юзер123
naïve
21.12.21
✎
14:14
|
(35) работало. ничего не меняли. Перестало работать.
|
|||
38
Юзер123
naïve
21.12.21
✎
14:15
|
(34) как чекнуть Кэш можно?
|
|||
39
PLUT
21.12.21
✎
14:16
|
(38) семь бед один резет
попробуйте выключить и снова включить.... сервер |
|||
40
Злопчинский
21.12.21
✎
14:17
|
(39) еще можно новый сервак поставить...
|
|||
41
PLUT
21.12.21
✎
14:19
|
(40) в нем будет изначально чекнутый кэш (cash) ?
|
|||
42
pechkin
21.12.21
✎
14:24
|
скорее всего открывается модально, но не в фокусе и окна не видно
|
|||
43
lubitelxml
21.12.21
✎
14:30
|
Замер производительности пробовал уже делать?
|
|||
44
Юзер123
naïve
21.12.21
✎
14:41
|
(42)я закоментил вообще открытие формы.
(43) Нет (39) локально на комп базу перенес. Все что можно очищали и перезапускали. Переписал на БезКонтекста первую процедуру проверки номенклатуры. Начала зависать в отладке. |
|||
45
Юзер123
naïve
21.12.21
✎
14:45
|
причем на терминале вылетела ошибка Software caused connection abort а в отладчике еще процесс идет. причем шустро так)
|
|||
46
lubitelxml
21.12.21
✎
15:01
|
Показывай код из ЗаполнитьТаблицуНаСервере
|
|||
47
Юзер123
naïve
21.12.21
✎
15:08
|
Оно зависает на либой серверной процедуре или функции если включена отладка.
&НаСервере ЗаполнитьТаблицуНаСервере л_СписокНоменклатурыПроизвЗадания = ПолучитьИзВременногоХранилища(АдресВХранилище); ОстатокНПЗ = " "; ОстатокВведенногоКоличества = Количество; ВведенноеКоличество = " "; КоличествоИзПроизводсвтенногоЗадания = ПолучитьТаблицуСКоличествомНаСервере(Количество,КодНом,АдресВХранилище); Номенклатура = Справочники.Номенклатура.НайтиПоКоду(СокрЛП(КодНом)); СчетчикИндекса = 0; Если Количество = Неопределено Тогда Возврат; КонецЕсли; Пока СчетчикИндекса < КоличествоИзПроизводсвтенногоЗадания.Количество() Цикл Если Не Число(КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].Количество) <= 0 Тогда Если Число(КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].Количество) = ОстатокВведенногоКоличества Тогда Строка = Объект.Номенклатура.Добавить(); ВведенноеКоличество = ОстатокВведенногоКоличества; Строка.Количество = ОстатокВведенногоКоличества; Строка.Артикул = Номенклатура.Код; Строка.НомерПроизводственногоЗадания = КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].НПЗ; Строка.НомерПартии = КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].Комментарий; Строка.Номенклатура = Номенклатура; Строка.ШтрихКод = Штрихкод; Строка.Дата = ТекущаяДата(); СтруктураОтбораСтрок = Новый Структура; СтруктураОтбораСтрок.Вставить("НПЗ", КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].НПЗ); СтруктураОтбораСтрок.Вставить("НомКод", КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].НомКод); УдалитьСтрокуТЗ = СписокНоменклатурыПроизвЗадания.НайтиСтроки(СтруктураОтбораСтрок); СписокНоменклатурыПроизвЗадания.Удалить(УдалитьСтрокуТЗ[0]); ИначеЕсли Число(КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].Количество) > ОстатокВведенногоКоличества Тогда ОстатокНПЗ = Число(КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].Количество) - ОстатокВведенногоКоличества; ВведенноеКоличество = ОстатокВведенногоКоличества; Строка = Объект.Номенклатура.Добавить(); Строка.Количество = ВведенноеКоличество; Строка.Артикул = Номенклатура.Код; Строка.НомерПроизводственногоЗадания = КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].НПЗ; Строка.НомерПартии = КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].Комментарий; Строка.Номенклатура = Номенклатура; Строка.ШтрихКод = Штрихкод; Строка.Дата = ТекущаяДата(); СтруктураОтбораСтрок = Новый Структура; СтруктураОтбораСтрок.Вставить("НПЗ", КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].НПЗ); СтруктураОтбораСтрок.Вставить("НомКод", КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].НомКод); НайденнаяСтрокаТЗ = СписокНоменклатурыПроизвЗадания.НайтиСтроки(СтруктураОтбораСтрок); НайденнаяСтрокаТЗ[0].Количество = ОстатокНПЗ; Иначе ОстатокНПЗ = Число(КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].Количество) - ОстатокВведенногоКоличества; ВведенноеКоличество = Число(КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].Количество); Строка = Объект.Номенклатура.Добавить(); Строка.Количество = ВведенноеКоличество; Строка.Артикул = Номенклатура.Код; Строка.НомерПроизводственногоЗадания = КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].НПЗ; Строка.НомерПартии = КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].Комментарий; Строка.Номенклатура = Номенклатура; Строка.ШтрихКод = Штрихкод; Строка.Дата = ТекущаяДата(); СтруктураОтбораСтрок = Новый Структура; СтруктураОтбораСтрок.Вставить("НПЗ", КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].НПЗ); СтруктураОтбораСтрок.Вставить("НомКод", КоличествоИзПроизводсвтенногоЗадания[СчетчикИндекса].НомКод); СтруктураОтбораСтрок.Вставить("Количество", СокрЛП(ВведенноеКоличество)); УдалитьСтрокуТЗ = СписокНоменклатурыПроизвЗадания.НайтиСтроки(СтруктураОтбораСтрок); СписокНоменклатурыПроизвЗадания.Удалить(УдалитьСтрокуТЗ[0]); КонецЕсли; КоличествоИзПроизводсвтенногоЗадания = л_СписокНоменклатурыПроизвЗадания.НайтиСтроки(Новый Структура("НомКод", СокрЛП(Номенклатура.Код))); ОстатокВведенногоКоличества = ОстатокВведенногоКоличества - ВведенноеКоличество; Если ОстатокВведенногоКоличества = 0 Или ОстатокНПЗ > 0 Тогда Прервать; КонецЕсли; КонецЕсли; КонецЦикла; КОНЕЦпРОЦЕДУРЫ |
|||
48
PLUT
21.12.21
✎
15:19
|
мои глаза :)
пока истина цЫкл и прервать... а не зацыкливается ли у вас процедура? счетчикиндекса где в процедуре увеличивается?? |
|||
49
PLUT
21.12.21
✎
15:20
|
+(48) добавь ЖыРа - пиши в журнал регистрации, если отладка зависает :)
в процедуре ЗаписьЖурналаРегистрации(...) |
|||
50
Юзер123
naïve
21.12.21
✎
15:44
|
Да все. Спс всем. нашел причину. Ошибка в коде как и говорили )
Спс. |
|||
51
PLUT
21.12.21
✎
15:46
|
(50) надеюсь, это не твой код? :)
|
|||
52
lubitelxml
21.12.21
✎
15:46
|
(50) пора бы научится пользоваться уже отладчиком
|
|||
53
H A D G E H O G s
21.12.21
✎
16:18
|
Никто ничего не менял, но поменялись данные..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |