|
УПП взаимоблокировки регистр сведений списанные товары | ☑ | ||
---|---|---|---|---|
0
mnail1979
10.05.12
✎
14:38
|
При одновременном проведении документов реализация товаров и услуг и перемещения почти всегда возникают блокировки. ЦУП указывает на регистр сведений списанные товары. Но там и запроса как такового в коде нет самописного в этих частях. Что можете посоветовать.
Может скриншоты прислать. Только скажите какие? |
|||
27
rphosts
12.05.12
✎
09:09
|
(24) если при проведении производится чтение - то то что будет читаться должно быть заблокировано. Если нет - не поможет упр.блокировка
|
|||
28
DEVIce
12.05.12
✎
09:09
|
(26). Да сфигали в очередь? Там индекс по регистратору, вполне себе должно параллельно работать. Говорю же, если сами в конфиге ничего не намутили с блокировкой всей таблицы, то проблема скорее всего в базе данных. У меня тоже УПП на примерно 20 активных пользователей - нет таких проблем.
|
|||
29
zva
12.05.12
✎
09:20
|
(27) при проведении реализации и перемещения в этот регистр пишется
|
|||
30
rphosts
12.05.12
✎
09:21
|
(29) и всё?
|
|||
31
mnail1979
12.05.12
✎
09:30
|
в конфе много чего исправлено и дописано. Много чего криво, так я сам самоучка и пробую. Но насколько мне известно касательно этого регистра нигде ничего не менялось. Иначе ЦУП бы указал.
|
|||
32
mnail1979
12.05.12
✎
09:31
|
можете мне поэтапно сказать, что и где проверить.
|
|||
33
DEVIce
12.05.12
✎
09:38
|
(32). Для этого нужно видеть конфигурацию.
|
|||
34
rphosts
12.05.12
✎
09:38
|
(32) раз переписано то точно вам никто не скажет.
В общих чертах план при проведении такой: 1.Всё что не зависит от того что в ИБ уже записано посчитать. 2.Наложить блокировку на всё что нужно будет читать из ИБ при проведении. 3.Максимально быстро создать и записать свои наборы записей регистров. 4.Если чего там по итогам 3. нужнопроверить - проверить. А может по регламенту эти доки проводить, например ночью? Или может частично проводить по факту, а допроводить по каикм-то регистрам по регламенту |
|||
35
mnail1979
12.05.12
✎
09:41
|
что то мне кажется, что документ перемещения и реализации тут не причем. Они просто пишут, даже не читают.
Во втором скриншоте видно, что читают общиймодуль.полныеправа и общиймодуль.управлениезапасамипартионныйучет |
|||
36
mnail1979
12.05.12
✎
09:41
|
могу ЦФ сбросить
|
|||
37
mnail1979
12.05.12
✎
09:42
|
частично не получится. Реализацию проводят в одном здании, а перемещение в другом.
|
|||
38
mnail1979
12.05.12
✎
09:48
|
ТИИ не делал. Щас попробую
|
|||
39
DEVIce
12.05.12
✎
09:50
|
(37). Работают же в одной базе, какая разница.
|
|||
40
DEVIce
12.05.12
✎
09:51
|
(36). Версия конфиги какая изначально?
|
|||
41
mnail1979
12.05.12
✎
09:53
|
(40) 8.1.15.14
|
|||
42
rphosts
12.05.12
✎
09:54
|
(41) это платформа, про версию УПП спрашивают
|
|||
43
DEVIce
12.05.12
✎
09:55
|
Подозреваю что там еще редакция 1.2 :)
|
|||
44
mnail1979
12.05.12
✎
09:56
|
Пивобезалкогольный комбинат , редакция 1.2 (1.2.19.1) (УПП)
|
|||
45
rphosts
12.05.12
✎
09:58
|
(44) переделывали-то хоть как положено: через подписки и т.п. или как?
|
|||
46
mnail1979
12.05.12
✎
10:00
|
если чесно, я даже незнаю что такое подписка. Нам переделала компания, а потом я сам там пару вещей дописал. Если имеете ввиду подписку ИТС, то она точно не использовалась.
|
|||
47
rphosts
12.05.12
✎
10:02
|
(46)объект конф. "Подписка на события".... видимо вам прям в доках правили... видимо хотели подсадить на свою поддержку...
|
|||
48
5 Элемент
12.05.12
✎
10:05
|
(34) расскажи зачем п.3 :)
|
|||
49
5 Элемент
12.05.12
✎
10:05
|
и п2.
|
|||
50
DEVIce
12.05.12
✎
10:05
|
(44). Вы производите безалкогольнае пиво? Дже не знаю, стоит ли таким помогать. :)
|
|||
51
rphosts
12.05.12
✎
10:06
|
(49)если есть чтение, наприемр новая метода контроля остатков - тогад надо, но 8.1 и 1.2 - видимо не надо...
|
|||
52
mnail1979
12.05.12
✎
10:06
|
(50) мы производим лимонады. Незнаю почему они так назвали конфу. Может взяли у кого
|
|||
53
mnail1979
12.05.12
✎
10:08
|
(47) незнаю как они, но я прямо в доках все правлю. А что,так не правильно?
|
|||
54
DEVIce
12.05.12
✎
10:09
|
Проблемы начались в какой-то конкретный момент или были всегда?
|
|||
55
DEVIce
12.05.12
✎
10:10
|
Ну и сдается мне что про управляемые блокировки можно забыть, в этой редакции их не было. Поэтому верни все обратно на автоматические - может этого даже будет достаточно. :) Но про ТИИ не забудь - надо сделать обязательно.
|
|||
56
DEVIce
12.05.12
✎
10:11
|
Пока не вернешь все на автоматические блокировки и не сделаешь ТИИ, дальше нет смысла чего-то обсуждать.
|
|||
57
mnail1979
12.05.12
✎
10:12
|
(54) видимо были, но мы не замечали, так как изначально работало всего 1-2 человека. Как подключили еще людей, которые начали работать параллельно - начали замечать блокировки.
|
|||
58
mnail1979
12.05.12
✎
10:15
|
(56) Вернул все как было. Т.е. восстановил ЦФ. Т.е. конфа в автоматическом режиме. Документ реализации и перемещения в автоматическом, а регистр сведений списанные товары в управляемом. Но это я так понимаю не страшно, так как автомат+управляемый=автомат
|
|||
59
mnail1979
12.05.12
✎
10:16
|
а ТИИ пока работает. Уже вижу, что там полно всяких ошибок , и в нашем регистре тоже.
|
|||
60
mnail1979
12.05.12
✎
10:17
|
ошибки типа Регистр сведений.СписанныеТовары.Ресурс.Номенклатура 19.01.2011 10.46.23 Требование-накладная....................
Объект, на который ссылается значение, отсутствует |
|||
61
hhhh
12.05.12
✎
10:21
|
(59) порядок регистров при записи проверьте. Например, если в реализации вы этот регистр первым записываете, а в перемещении последним из всех регистров, то точно будут блокировки.
|
|||
62
DEVIce
12.05.12
✎
10:25
|
(61). Там индекс по регистратору, блокируются только свои записи, с чего бы они блокировки-то устроили?
|
|||
63
mnail1979
12.05.12
✎
10:59
|
(62) там и номенклатура тоже проиндексирована
|
|||
64
mnail1979
12.05.12
✎
10:59
|
(62) а где посмотреть, что индекс по регистратору идет. Че то я не нашел
|
|||
65
DEVIce
12.05.12
✎
11:00
|
(64). Если регистр подчинен регистратору, то индекс там есть по нему.
|
|||
66
mnail1979
12.05.12
✎
11:01
|
ну так что, ждем результатов ТИИ
|
|||
67
mnail1979
12.05.12
✎
13:08
|
предварительно... Я запускал только тестирование. Было выявлено очень много ошибок. Но по регистру списанные товары были найдены 2 записи на несуществующие номенклатуры. Я удалил эти номенклатуры их этихдвух документов требование-накладная и перепровел документ. В регистре списанные товары вроде проблем уже быть не должно. Но, тем не менее, блокировка все же происходит.
Почему? Щас пробую сделать тестирование и исправление. И удалю все ссылки на несуществующие объекты. |
|||
68
РазДва
12.05.12
✎
15:18
|
(67) Переведи режим блокировок по регистру обратно в автоматический.
Если верить картинке на радикале, то блокировка накладывается на запросе, который определяет список регистров, по которым есть движения в документе, сам запрос используется при удалении движений, это странное поведение.. Так всё-таки, что происходит при отключении проведения партий онлайн, нетрудно проверить, зато может дать кучу пищи для размышлений и вариантов решения.. |
|||
69
mnail1979
12.05.12
✎
16:55
|
тестирование и исправление прошло. Но блокировка осталась.
(68) А для чего переводить регистр, если все равно его родитель в автоматическом режиме. Щас проверю отключение партий . Где это отключать. Настройка параметров учета-учет товаров - партионный учет - списывать партии при проведении документов - убрать 3 птички? |
|||
70
mnail1979
12.05.12
✎
16:59
|
убрал 3 птички - все прошло нормально. Но конечно же в регистр списанные товары ничего не попало.
|
|||
71
mnail1979
12.05.12
✎
17:06
|
че то я нифига не понял.
Захожу в регистр сведений списанные товары. Нахожу любую запись. Двойной щелчок - выхожу на документ-регистратор. В этом документе перехожу на движения по регистрам - и там движение по регистру сведений не показывает. Что за фигня. или так и должно быть |
|||
72
РазДва
12.05.12
✎
19:28
|
(70) В регистр запись идет всегда, в отчете по движениям не показывается, так как это "технологический" регистр
Посмотреть движения можно Перейти - Списанные товары |
|||
73
guevara74
12.05.12
✎
19:42
|
Давайте разделим мух и котлет :
1. У вас ожидания на блокировках или ВЗАИМОБЛОКИРОВКИ (т.е. дедлоки) ??? 2. Параметры железа? 3. Количество пользователей? Размер базы? |
|||
74
mnail1979
12.05.12
✎
21:25
|
(73)
1.у меня взаимоблокировки (я же показал на скриншотах. 2. параметры нормальные. 3. Размер базы 10 гигов. Кол-во пользователей 15. Дело в другом. Я на обычный тестовый комп поставил эту же базу. И просто с двух компов сам одновременно хочу провести 2 документа - на одном перемещение, на другом реализацию. Обязательно выходит взаимоблокировка. Она исчезает только после того, как я убираю птички касательно списания по партиям в настройках учета. Чем это грозит - убирание птичек, и почему все же при птичках получается блокировка. Я просто хочу понять, это в типовой так, или все же кто-то что-то дописал. И как узнать. |
|||
75
РазДва
12.05.12
✎
21:30
|
(73) а затем попросите показать счетчики производительности, очереди к дискам и прочее, прочее?
|
|||
76
РазДва
12.05.12
✎
21:54
|
(74) Взаимоблокировки - не нормальное поведение.
По поводу "это в типовой так" есть сказка: Жила была УПП 1.1, была она неповоротливая и немасштабируемая вообще, постоянные блокировки и дедлоки, проявляющиеся уже на количестве пользователей чуть больше чем в ларьке. И вот под постоянным воем от франчайзи решила 1С, занятся и решением этих вопросов, и вышла УПП 1.2, в которой над масштабируемостью прилично поработали, убрали запись в границу последовательности, добавили в саму последовательность доп. реквизит про хронологию, изменили схему проведения документов, убрали автоматическую очистку движений, вынесли её в начало проведения и ещё много всякой всячины.. И кто сейчас вспомнит на каком релизе 1.2 всё получилось как надо? 1.2.19 не последний релиз УПП 1.2, но точно деадлоки это не нормально и в типовой они по большому счету от них избавились. А затем написали 1С кучу рекомендаций по достижению максимальной параллельности работы пользователей и масштабируемости, и особенно каждый раз подчеркивали, что надо отключать онлайн проведение по партиям(убирание птичек) и проводить по ним по ночам или в фоне(а вот этим и грозит убирание). Тут могу посоветовать почитать хелп к обработке проведение по партиям или книжку какую купить. |
|||
77
Wern
12.05.12
✎
22:18
|
Похоже на типичную проблему с разным порядком блокировки в транзакции. Нужно смотреть что блокируется в общем модуле управление запасами. явно что то из первых двух строчек на скрине. А вообще наймите специалиста, судя по всему у вас недостаточный уровень знаний для решения данной проблемы.
|
|||
78
mnail1979
12.05.12
✎
22:28
|
я пишу из Баку Азербайджан. У нас нет специалистов. Я программер практически на всех языках. Но с 1С познакомился недавно.
|
|||
79
mnail1979
12.05.12
✎
22:30
|
(76) можете скинуть ссылку на хелп по проведению по партиям и вообще рекомендациям? И вообще интересно, если советуют убирать птички, зачем их вообще тогда туда ставить на интерфейс пользователя. Убрали бы эту возможность и все... Разве я не прав?
|
|||
80
РазДва
12.05.12
✎
22:42
|
(79) хелп можно почитать прямо в своей УПП, нажав в обработке "знак вопроса" или F1
рекомендации можно, наверное, на диске ИТС раскопать, ещё товарищ Гилёв Вячеслав на своем сайте этих рекомендаций навыкладывал хоть попой жуй, сайт можно загуглить конечно не прав, поставьте себя на место 1С, как они могут ультимативно для всех оставить проведение по партиям только обработкой, а потом воевать с той половиной ларьков, которую это не устраивает, коенчно лучше оставить выбор |
|||
81
mnail1979
12.05.12
✎
22:46
|
(80) ок. понял. спасибо
|
|||
82
DEVIce
13.05.12
✎
05:55
|
Специалиста можно и удаленно нанять, в чем проблема?
|
|||
83
zva
13.05.12
✎
08:08
|
(74) <<Я просто хочу понять, это в типовой так, или все же кто-то что-то дописал. И как узнать.>>
В типовой взаимоблокировок по этому регистру быть не должно, максимум обычные блокировки. Возьмите обычную типовую демобазу вашего релиза, проведите одновременно 2 документа, после этого накатите на нее вашу конфигурацию и повторите. |
|||
84
mnail1979
14.05.12
✎
13:26
|
(83) если не должно, почему тогда Гилев и 1С советуют для увеличения параллельности работы отключать списывание по партиям онлайн при проведении???
|
|||
85
DEVIce
14.05.12
✎
13:33
|
(84). Потому что при списании партии не только этот регистр задействован, там еще регистра четыре, где основная информация и хранится, двигаются.
|
|||
86
mnail1979
14.05.12
✎
13:37
|
ок. Интересно, если действительно я убежусь, что в типовой все работает, мне что построчно чтоли искать разницы в коде типовой и моей. Дело в том что если бы мой код мешал, ЦУП бы указал на него. А так вроде все по умолчанию указывает
|
|||
87
zva
14.05.12
✎
13:41
|
(86) что проверить-то мешает?
может в запросе где ДЛЯ ИЗМЕНЕНИЯ стоит |
|||
88
mnail1979
14.05.12
✎
13:55
|
(87) может мне ЦФ выложить. Так смотрю ничего особенного вроде нету, что могло бы мешать
|
|||
89
mnail1979
14.05.12
✎
13:56
|
куда тут обычно люди выкладывают ЦФ
|
|||
90
DEVIce
14.05.12
✎
14:26
|
(89). На файлообменник.
|
|||
91
mnail1979
14.05.12
✎
15:24
|
Ссылка на ЦФ. http://narod.ru/disk/49163573001.fc831bd7f848f804bed0788811f58157/2012.05.14.cf.html
Люди добрые, посмотрите плиз. |
|||
92
mnail1979
14.05.12
✎
15:38
|
кто дибудь качает?
|
|||
93
ИС-2
naïve
14.05.12
✎
16:05
|
а sql настривали. Там надо повисить время для транзакции
|
|||
94
mnail1979
14.05.12
✎
16:17
|
а как это и где это?
|
|||
95
mnail1979
14.05.12
✎
16:19
|
(93) sql я вообще не трогал. Установил почти все по умолчанию
|
|||
96
UnknownH
14.05.12
✎
16:23
|
База большая? Сколько записей в регистре Списаные товары?
Выполни в консоли запросов: ВЫБРАТЬ КОЛИЧЕСТВО(*) ИЗ РегистрСведений.СписанныеТовары |
|||
97
UnknownH
14.05.12
✎
16:45
|
Вообще сколько примерно секунд/минут проводятся перемещения, реализации?
Если проводятся достаточно долго, есть одна идейка... |
|||
98
zva
14.05.12
✎
17:56
|
(91) Для начала попробуйте у Последовательностей документов ПартионныйУчет и ПартионныйУчетБУ вернуть взад Перемещение границы при проведении на Не перемещать и убрать движения, влияющие на последовательность как в конфигурации поставщика
|
|||
99
mnail1979
15.05.12
✎
13:31
|
(96) 236078
|
|||
100
mnail1979
15.05.12
✎
13:31
|
(97) секунд 4-5
|
|||
101
mnail1979
15.05.12
✎
13:32
|
(98) а как это
|
|||
102
zva
15.05.12
✎
13:40
|
(101) В конфигураторе Документы - Последовательности - Закладка Использование. Непонятно, зачем вообще поставили перемещать границу для партионного учета. Из-за этого у вас невозможна одновременное проведение документов.
|
|||
103
zva
15.05.12
✎
13:42
|
теорию можно здесь почитать http://pro1c.org.ua/index.php?showtopic=470
|
|||
104
mnail1979
15.05.12
✎
13:53
|
(98) а в движениях ведь только партии товаров на складах. Там нет "списанныетовары". А блокировку дает именно "списанные товары"
|
|||
105
mnail1979
15.05.12
✎
14:10
|
(98) " убрать движения, влияющие на последовательность как в конфигурации поставщика". Убрать регистрнакопления.партиитоваровнаскладах?
|
|||
106
mnail1979
15.05.12
✎
14:30
|
сделал "не перемещать", но движения не убрал. Блокировка все равно выходит
|
|||
107
UnknownH
15.05.12
✎
15:44
|
В общем модуле УправлениеЗапасамиПартионныйУчет
Попробуй в конце процедур ПолучитьДеревоПартийНаСкладахУпр ПолучитьДеревоПартийНаСкладахБух ПолучитьДеревоПартийНаСкладахНал перед Возврат Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); Вставить Запрос.Текст = "ВЫБРАТЬ | * |ПОМЕСТИТЬ СписанныеТовары |ИЗ | РегистрСведений.СписанныеТовары |ГДЕ | Регистратор = &ОсновнойДокумент |ИНДЕКСИРОВАТЬ ПО Номенклатура; | |" + СтрЗаменить(Запрос.Текст, "РегистрСведений.СписанныеТовары", "СписанныеТовары"); // UnknownH |
|||
108
mnail1979
15.05.12
✎
16:42
|
мне интересен вопрос. Зачем это надо менять. Это вроде нетронутый фрагмент из типовой УПП. Почему он дает блокировку. Тут все утверждают, что типовая не должна давать блокировку. Я выложил конфигурацию. Можете указать код, который неправильно дописан, если вы так считаете, что блокировки в данном случае возникают из-за кривых рук дописчика.
|
|||
109
mnail1979
15.05.12
✎
16:51
|
если все утверждают, что блокировки получаются из-за того, что либо в настройках что то не то, либо дописка кривая, просьба указать на неправильный код или неправильные насройки
|
|||
110
UnknownH
15.05.12
✎
17:13
|
Мало что там все утверждают. Типовой код, тем более трехлетней давности, тоже не идеален. Посмотри какой там запрос и сравни его с рекомендациями 1с. Может выбираться неверный план выполнения запроса запросто. Сам сталкивался с этим но на обычных УПП с большим объемом данных.
|
|||
111
UnknownH
15.05.12
✎
17:58
|
Вот пробуй - исправил типовой код, на файловой дедлоки исчезли, что там на SQLбудет сам проверь
В общем модуле ПолныеПрава замени функцию (эту добавь, старую переименуй) Функция ОпределитьНаличиеДвиженийПоРегистратору(ДокументСсылка) Экспорт МетаданнныеДокумента = ДокументСсылка.Метаданные(); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(200))); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Регистратор", ДокументСсылка); Для Каждого Движение ИЗ МетаданнныеДокумента.Движения Цикл Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 Регистратор ИЗ " + Движение.ПолноеИмя() + " ГДЕ Регистратор = &Регистратор"; Если Не Запрос.Выполнить().Пустой() Тогда ТЗ.Добавить().Имя = Движение.ПолноеИмя(); КонецЕсли; КонецЦикла; Возврат ТЗ; //UnknownH КонецФункции |
|||
112
mnail1979
15.05.12
✎
20:14
|
(111) а то что в (107) тоже делать?
|
|||
113
zva
16.05.12
✎
08:52
|
(111) Функция ОпределитьНаличиеДвиженийПоРегистратору(ДокументСсылка) перекочевала без измененений в последний релиз УПП 1.3 на 8.2, проблема точно не в ней
(106) Проверил на файловой базе на вашей конфигурации, при установленной настройке Перемещать у Последовательностей документов ПартионныйУчет и ПартионныйУчетБУ - есть блокировки при проведении перемещения и реализации, при установленной Не перемещать - блокировок нет Вы настройку у двух последовательностей меняли? |
|||
114
UnknownH
16.05.12
✎
11:26
|
Во первых то что функция перекочевала без изменений в релиз 1.3 мало о чем говорит - в релизе 1.3 по умолчанию стоят управляемые блокировки, а в 1.2.19 автоматические.
Смотрим скрин автора - http://s019.radikal.ru/i602/1205/be/60dec6da9534.jpg Первая строка - как раз блокировка устанавливается из функции измененной в (111) Последняя строка - выполняется код предложенный к модификации в (107) На последовательностях конечно надо вернуть "Не перемещать". Дальше если блокировка осталась посмотреть ЦУПом все так же там или что поменялось? Если есть уверенность что проблема именно в нетиповом коде, то проверить проще простого - делай копию SQL-базы , затем иди в Конфигуратор - Конфигурация - Поддержка - Настройка поддержки - Сравнить, объединить - Настройка - Поставить галку Разрешить удаление объектов основной конфигурации - Отметить все объекты - Выполнить - Обновить конфигурацию ИБ (F7) Дальше смотри есть ли твоя блокировка - есть - ищем типовое, нет - ищем в дописках |
|||
115
Рыжий Лис
16.05.12
✎
12:16
|
В УПП 1.3 отказались от запроса для получения списка движений, получают движения через метаданные и очищают не глядя есть в них записи или нет. Эта же функция используется в документе корректировка записей регистров при копировании существующего документа (т.е. не выполняется внутри транзакции и поэтому не приводит к блокировкам).
Если проанализировать скриншоты, то видно что проблема в попытке изменения вида блокировки (чтение на запись). Так как в обоих документах блокируется диапазон проблема решится переходом на управляемые блокировки тогда блокироваться станут записи. Другое решение изначально блокировать этот регистр на запись. Взаимоблокировка заменится на ожидание блокировки. Для этого в запросе из функции ОпределитьНаличиеДвиженийПоРегистратору нужно добавить ДЛЯ ИЗМЕНЕНИЯ. |
|||
116
mnail1979
16.05.12
✎
14:58
|
итак, давайте совместно подытожим, что мне делать.
Добавить только "ДЛЯ ИЗМЕНЕНИЯ", или "не перемещать" тоже делать. Не перемещать я делал по обоим - не помогло. |
|||
117
zva
16.05.12
✎
16:54
|
(116) Для начала, на копии базы - конфигурация-поддержка-настройка поддержки - сохранить в файл конфигурацию поставщика.
Загрузить конфигурацию в копию базы, убив тем самым все ваши изменения. Проверить наличие блокировок при приведении. Если не получиться зугрузить - делать через сравнить - объединить с конфигурацией из файла. Если блокировки остануться - сделать тоже самое с конфигурацией типовой УПП 1.2.19.1 О результататах сообщить. |
|||
118
mnail1979
17.05.12
✎
11:11
|
ок. Но думаю что блокировки останутся, так как 1С и Гилев сами рекомендуют отключать списание по партиям при проведении документов, и сами указывают, что в случае если эти пункты не отключить, будут блокировки.
Так и есть, когда я отключаю эти птички - блокировки исчезают |
|||
119
Фауст
17.05.12
✎
13:08
|
Если У тебя В запросе из общего модуля (строка 1097) нет конструкции ДЛЯ ИЗМЕНЕНИЯ, примененной к регистру "Списанные товары", то именно в этом проблема 100% или по крайней мере это одна из проблем. Добавь эту конструкцию в запрос, блольше ничего делать не нужно. Тебе же ЦУП все расписал. У тебя регистр сначала читается потом пишется...
|
|||
120
mnail1979
17.05.12
✎
16:06
|
(119)
Функция ОпределитьНаличиеДвиженийПоРегистратору(ДокументСсылка) Экспорт ТекстЗапроса = ""; // для исключения падения для документов, проводящимся более чем по 256 таблицам счетчик_таблиц = 0; МетаданнныеДокумента = ДокументСсылка.Метаданные(); Если МетаданнныеДокумента.Движения.Количество() = 0 Тогда Возврат Новый ТаблицаЗначений; КонецЕсли; Для Каждого Движение ИЗ МетаданнныеДокумента.Движения Цикл // в запросе получаем имена регистров, по которым есть хотя бы одно движение // например, // ВЫБРАТЬ Первые 1 «РегистрНакопления.ТоварыНаСкладах» // ИЗ РегистрНакопления.ТоварыНаСкладах // ГДЕ Регистратор = &Регистратор // имя регистра приводим к Строка(200), см. ниже ТекстЗапроса = ТекстЗапроса + " |" + ?(ТекстЗапроса = "", "", "ОБЪЕДИНИТЬ ВСЕ ") + " |ВЫБРАТЬ ПЕРВЫЕ 1 ВЫРАЗИТЬ(""" + Движение.ПолноеИмя() + """ КАК Строка(200)) КАК Имя ИЗ " + Движение.ПолноеИмя() + " ГДЕ Регистратор = &Регистратор"; // если в запрос попадает более 256 таблиц – разбиваем его на две части // (вариант документа с проведением по 512 регистрам считаем нежизненным) счетчик_таблиц = счетчик_таблиц + 1; Если счетчик_таблиц = 256 Тогда Прервать; КонецЕсли; КонецЦикла; Запрос = Новый Запрос(ТекстЗапроса); ЗАпрос.УстановитьПараметр("Регистратор", ДокументСсылка); // при выгрузке для колонки «Имя» тип устанавливается по самой длинной строке из запроса // при втором проходе по таблице новое имя может не «влезть», по этому сразу в запросе // приводится к строка(200) ТаблицаЗапроса = Запрос.Выполнить().Выгрузить(); //строка 1097 ТаблицаЗапроса.Индексы.Добавить("Имя"); // если количество таблиц не превысило 256 – возвращаем таблицу Если счетчик_таблиц = МетаданнныеДокумента.Движения.Количество() Тогда Возврат ТаблицаЗапроса; КонецЕсли; // таблиц больше чем 256, делаем доп. запрос и дополняем строки таблицы. ТекстЗапроса = ""; Для Каждого Движение ИЗ МетаданнныеДокумента.Движения Цикл Если счетчик_таблиц > 0 Тогда счетчик_таблиц = счетчик_таблиц - 1; Продолжить; КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |" + ?(ТекстЗапроса = "", "", "ОБЪЕДИНИТЬ ВСЕ ") + " |ВЫБРАТЬ ПЕРВЫЕ 1 """ + Движение.ПолноеИмя() + """ КАК Имя ИЗ " + Движение.ПолноеИмя() + " ГДЕ Регистратор = &Регистратор"; КонецЦикла; Запрос.Текст = ТекстЗапроса; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл СтрокаТаблицы = ТаблицаЗапроса.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТаблицы, Выборка); КонецЦикла; Возврат ТаблицаЗапроса; КонецФункции |
|||
121
brznzglwgn
18.05.12
✎
18:19
|
(78) Вы батенька не правы, Akbis.az
Специалист компании AKBIS получил сертификат 1С:Эксперт по технологическим вопросам. AKBIS первая и единственная из организаций Азербайджана вошедшая в число организаций обладающих этим сертификатом. Можете проверить на сайте 1С Так что можете обращаться!!! |
|||
122
mnail1979
24.05.12
✎
16:45
|
(121) не знал, извините. Очень рад что дали о себе знать.
|
|||
123
mnail1979
28.05.12
✎
08:58
|
А что если я ншу конфу брошу на 8.2. И базу посажу на оракл. Что нибудь может измениться с блокировками, или как. Т.е. меня интересует следующее: блокировки вызываются 1С, или СУБД? Если СУБД (а у нас щас стоит sql), то думаю с ораклом таких проблем не будет. По крайней мере сколько я работал с ораклом(не в 1С), никогда и понятия о блокировках не слышал. Оракл их сам грамотно обходит.
|
|||
124
MM
28.05.12
✎
09:51
|
8.2 может работать в режиме совместимости с 8.1, тогда различий будет мало в системе блокировок. Отключение совместимости, вероятно, потребует некоторых исправлений в конфигурации.
Если ваша конфигурация защищена ключём, это также может помешать конвертации в 8.2. Оракл в автоматическом режиме блокировок будет работать хуже чем MS SQL, т.к. блокировки будут табличные, а не строчные. |
|||
125
mnail1979
14.06.12
✎
16:54
|
(124) а вообще есть ли смысл переносить конфу на 8.2 в режиме совместимости с 8.1? Забудем временно про блокировки. В чем либо будут преимущества, или недостатки. Смогу ли я в режиме совместимости с 8.1 пользоваться возможностями 8.2?
|
|||
126
mnail1979
26.06.12
✎
15:20
|
я не совсем понимаю к чему вы даете советы по поводу изменения кода в 1С в типовой. Ведь сам товарищ Гилев в статье http://www.gilev.ru/1c/upp/ описывает, что при онлайн проведении будут блокировки и этого не избежать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |