|
v7: Элемент есть - инфы нет. Как? | ☑ | ||
---|---|---|---|---|
0
Масянька
25.12.15
✎
15:06
|
День добрый!
В справочнике номенклатуры есть элемент. В журнале регистрации по данному элементу нет никакой информации (кто и когда создал). Как так? |
|||
1
ДенисЧ
25.12.15
✎
15:06
|
программно создали.
Вот так. |
|||
2
Масянька
25.12.15
✎
15:07
|
(1) И что - в этом случае нет инфы? Программно же создавали под каким-то пользователем?
|
|||
3
Strogg
25.12.15
✎
15:07
|
(1) в ЖР прописывается пользак, под которым создали.
|
|||
4
Масянька
25.12.15
✎
15:09
|
+(2) Кстати, приход заводится программно (обработка, новые элементы в справ. номенклатура создаются программно). И у таких элементов инфа в ЖР есть.
|
|||
5
ДенисЧ
25.12.15
✎
15:09
|
(2) В 77, при программном создании - нет.
(3) нет, не прописывается |
|||
6
ДенисЧ
25.12.15
✎
15:09
|
(4) Значит, там этим озаботились.
|
|||
7
Масянька
25.12.15
✎
15:12
|
(5) То есть - никак не выцепить откуда взялся?
|
|||
8
ДенисЧ
25.12.15
✎
15:12
|
(7) Могу продать паяльник и инструкцию по использованию...
|
|||
9
Масянька
25.12.15
✎
15:16
|
(8) Комп пытать?
Говорю же - автоматом грузятся приходы, при этом номенклатура создается. Элемент в справочнике есть, а в приходе - нет. И остатков нет. |
|||
11
aka AMIGO
25.12.15
✎
15:20
|
(9) ой-ёй.. элемент в спр есть. "В приходе нет" - это уже не сабж..
Это кривизна обработки |
|||
12
Масянька
25.12.15
✎
15:24
|
(11) Обработка работает уже лет пять. ничего подобного не было.
При создании новой номенклатуры (обработкой) она садится в определенную папку. То есть - не руками сделали. Приход - сравниваются только суммы (в журнале) и при приходе док-ов входящие номер и дата заносятся. То есть - сама номенклатура в приходе не трогается. |
|||
13
DDwe
25.12.15
✎
15:25
|
(11) +100500
|
|||
14
DDwe
25.12.15
✎
15:25
|
(12) И палка бывает стреляет.
|
|||
15
Масянька
25.12.15
✎
15:26
|
+(12) В ЖР по данному приходу 3 записи:
- создан. - проведен. - открыт (сегодня). Первые 2 записи с разницей в одну секунду. |
|||
16
aka AMIGO
25.12.15
✎
15:28
|
(15) ну, согласись - чудес-то не бывает..
|
|||
17
aka AMIGO
25.12.15
✎
15:29
|
(15) а скажи, в доке по щелчку на номенклатуре карточка в справочнике открывается?
|
|||
18
vladko
25.12.15
✎
15:32
|
чтобы с обработки писалась информация в журнал регистрации, есть метод
ЗаписьЖурналаРегистрации(<?>,,,,); Синтаксис: ЗаписьЖурналаРегистрации(<Коммент>,<ТипСобытия>,<Событие>,<Объект>,<Категория>) Назначение: Выводит строку текста в системный журнал регистрации. Параметры: <Коммент> - строковое выражение, комментарий к событию. Если этот параметр - единственный переданный при вызове метода, то тогда в журнал записывается стандартное дополнительное событие с указанным комментарием. <ТипСобытия> - необязательный параметр. Строковое выражение - тип события. По умолчанию или при пустой строке ''Дополнительные события''. <Событие> - необязательный параметр. Строковое выражение - событие. По умолчанию ''Дополнительное событие''. <Объект> - необязательный параметр. Объект события, по умолчанию отсутствует. Для переданных в функцию объектов типа Документ/ Справочник/ Счет представление объекта будет записано автоматически (это не зависит от типа события и самого события). <Категория> - необязательный параметр. Число - категория события: 1 - администрирование; 2 - изменение данных; 3 - информация; 4 - предупреждение; 5 - ошибка. Значение по умолчанию 3. Замечание: Системой зарезервирован большой перечень типов событий/события. Незарезервированные имена позволяют пользователю фактически указывать свои собственные типы событий и события. Подробнее см. в документации гл. ''Системные процедуры и функции''. без него не пишется |
|||
19
Масянька
25.12.15
✎
15:32
|
(17) В док-е не было этой позиции. Совсем. Но сумма док-а один в один.
|
|||
20
Масянька
25.12.15
✎
15:33
|
(18) А окно сообщений нигде не пишется? Ну, в смысле, не сохраняется.
|
|||
21
aka AMIGO
25.12.15
✎
15:34
|
(19) Анька, я те щас стукну! смотри обработку..
В отладчике умеешь работать? :) |
|||
22
aka AMIGO
25.12.15
✎
15:35
|
(20) нет, из него можно только копипастить
|
|||
23
Масянька
25.12.15
✎
15:35
|
(21) Я не поняла... :(
|
|||
24
aka AMIGO
25.12.15
✎
15:36
|
(23) ну, хорошо, приход - это ТЧ, в ТЧ есть что-то?
"Сумма" - это фигня.. |
|||
25
Масянька
25.12.15
✎
15:39
|
(24) Есессьно. И номенклатура из ТЧ док-а открывается в справочнике... Ну, ты понял :)
|
|||
26
aka AMIGO
25.12.15
✎
15:39
|
Я тоже вот не понимаю.. пишешь в табличной части "нет этой позиции" - ну откуда взяться остаткам-то..
|
|||
27
Масянька
25.12.15
✎
15:40
|
Кстати, партия по этой номенклатуре помечена на удаление, как пустая - нет приходного док-та.
Чет, я совсем ничего не понимаю..... |
|||
28
Масянька
25.12.15
✎
15:41
|
(26) Так она есть в справочнике. Причем, в той папке, где созданная при создании прихода (т. е. созданная программно, а не руками). Откуда?
|
|||
29
aka AMIGO
25.12.15
✎
15:43
|
(19) В док-е не было этой позиции
(25) И номенклатура из ТЧ док-а открывается в справочнике рррррр.. ... ... :(( (28) "откуда" - так из твоей обработки.. Ты её модуль смотрела? |
|||
30
aka AMIGO
25.12.15
✎
15:44
|
(28) у тебя ТиС? вышлешь обработку? посмотрю на досуге.
|
|||
31
Масянька
25.12.15
✎
15:56
|
(29) У-у-у-у, ё-ё-ё-ё-ё-ё...
Excel-файл (в котором приход) обработкой грузится в 1С: создается док-т прихода, новая номенклатура (в спец. папку), партии, ГТД. Док-т прихода проводится. По реальному приходу (на склад) - в док-т прихода заносятся номер и дата (входящие), проверяется сумма (с бумажным вариантом док-ов). Пока вопросов нет. Потом идет товар на витрины, то есть - печатаются ценники. Обработке для ценников указывается приходный док-т, по нему заполняется номенклатура, заполняются цены и печатают ценники. И вот тут вылез вопрос: номенклатура есть (в обработке для ценников), остатков нет... Открываем приход - нет там этой номенклатуры... |
|||
32
Масянька
25.12.15
✎
15:58
|
+(31) Не. И в обработке для ценников нет. Есть только в справочнике.
|
|||
33
Масянька
25.12.15
✎
16:03
|
А что есть поле в dbf - VERSTAMP |Version stamp?
|
|||
34
aka AMIGO
25.12.15
✎
16:06
|
(32) ...Док-т прихода проводится.
Док проводится, стало быть остатки сформированы.. в рег.остатков, как минимум Открываем приход - нет там этой номенклатуры... "приход" - это Док-т прихода? ты ведь только что его провела.. деточка, чем "открываем приход" ? |
|||
35
aka AMIGO
25.12.15
✎
16:07
|
(33) не знаю.. перевел только как номер версии.. это 1с-овская заморочка, отношения к номенклатуре не имеет..
ИМХО, разумеется. |
|||
36
Масянька
25.12.15
✎
16:12
|
(34) Журналом :)
как можно открыть док-т прихода? Выбрали в журнале и открыли. Я понять не могу откуда в справочнике эта номенклатура. |
|||
37
aka AMIGO
25.12.15
✎
16:12
|
(35) + Файл ДБФ, что за поле VERSTAMP?
давний вопрос, ответа не нашел |
|||
38
aka AMIGO
25.12.15
✎
16:13
|
(36) номенклатура - из файла Excel и поместила его туда обработка..
|
|||
39
Масянька
25.12.15
✎
16:14
|
(38) Во-о-о-т... Почему нет в док-е прихода?
|
|||
40
aka AMIGO
25.12.15
✎
16:15
|
(39) Пришли мне эту обработку, и 1 (один) файл Excel, после просмотра обязуюсь вернуть тебе их обратно :)
|
|||
41
aka AMIGO
25.12.15
✎
16:17
|
(39) Почему нет в док-е прихода?
Обработка не обработала.. |
|||
42
Масянька
25.12.15
✎
16:19
|
(41) А почему сумма по док-т (в 1С) и бумажному варианту сходятся тютелька в тютельку?
|
|||
43
aka AMIGO
25.12.15
✎
16:21
|
(42) возможно, подмена номенклатуры.
|
|||
44
Масянька
25.12.15
✎
16:23
|
(43) Отправила. Тема - пустая.
Не может быть подмена номенклатуры. |
|||
45
aka AMIGO
25.12.15
✎
16:24
|
(42) Обработка твоя?
Когда читаешь строки прихода из Excel, как проверяешь наличие поступившей номенклатуры в справочнике? |
|||
46
aka AMIGO
25.12.15
✎
16:25
|
(44) Ладушки, дома посмотрю. Через полчаса всех выгонять начнут.
|
|||
47
Масянька
25.12.15
✎
16:37
|
(46) Причем, партия образовалась. С ГТД. А откуда ГТД берется? Из прихода...
Бред, короче, какой-то... |
|||
48
HawkEye
25.12.15
✎
19:11
|
(47) если накладная совпадает с бумажной, ты же проверила, что она совпадает, да? с чего ты взяла, что найденная тобой номенклатура относится к этой накладной?
|
|||
49
NorthWind
25.12.15
✎
22:34
|
(9) Там где создается автоматом номенклатура (в обработке) - так же программой писать в свой собственный лог, в текстовый файл. ЖР в семерке регит только интерактивную работу, программные манипуляции не регит. От слова вообще. Надо - пиши свое логирование.
|
|||
50
HawkEye
25.12.15
✎
23:04
|
(49) не трынди... ЖР в семерке регит интерактивную работу и то, что хочет регить программист...
|
|||
51
73с
26.12.15
✎
09:37
|
(50) ну значит обработка по этой номенклатуре прошла мимо зарегить в журнале, но не мимо создать
|
|||
52
Dump
26.12.15
✎
10:17
|
(47) "Бред, короче, какой-то..."
Если элемент создан неизвестно когда - забить. Если точно во время последнего импорта - проделать этот импорт на старой копии, предварительно напихав отладочных сообщений или отладчиком - по вкусу. |
|||
53
Web00001
26.12.15
✎
12:02
|
(12)Так возьми обработку и проверь создаются записи в ЖР при ее работе или нет. И тему можно не создавать. С ЖР за долгое время тоже много чего могло приключиться. Особенно если база файловая.
|
|||
54
пипец
26.12.15
✎
12:17
|
много плакал ))) видимо тяпничная ветка
ЗЫ о много нам открытий ... (с) помню как на почти супер закрытом сеансе через калькулятор влезал в реестр винды ;))) админы были в шоке, так что вариант может быть любой, от редактирования ЖР ручками |
|||
55
шаэс
26.12.15
✎
12:19
|
(0) ты ЗиКом никогда не занималась? там особо продвинутые расчетчики чистили ЖР вручную, дабы некоторые свои грехи сокрыть.
|
|||
56
шаэс
26.12.15
✎
12:21
|
+(55) неправильно спросила... про ЗиК помню, что занималась. Именно никому не помогала сама чистить журналы?
|
|||
57
фобка
26.12.15
✎
12:33
|
Вариантов 2:
1) фиксировалось в логе 2) никогда не фиксировалось в логе Ну и возможные события: 1) вытерли руками в файле, срезали лог, лог от другой базы 2) программное создание элемента (внешней обработкой ли, либо объектом конфы ли, либо через ком-соединение), без записи в журнале |
|||
58
NorthWind
26.12.15
✎
14:05
|
(50) Тогда было бы интересно узнать как, потому что я заморачивался этим вопросом - и ничего не нашел по нему. У меня работает обработка под специально выделенным для этой цели пользователем, создает за сутки десятки документов. Если ничего специально не делать, то все что я вижу в логе - это утром пользователь залогинился, вечером вышел. Поскольку логи работы мне были нужны, я просто написал свой механизм логов в текстовые файлы.
|
|||
59
HawkEye
26.12.15
✎
17:33
|
(58) ты программист или где?
ЗаписьЖурналаРегистрации() - пиши в ЖР все, что тебя надо и когда надо... |
|||
60
NorthWind
26.12.15
✎
17:44
|
(59) Вот она-то мне и не попалась. Теперь ясно.
|
|||
61
NorthWind
26.12.15
✎
17:57
|
+ (60) спасибо
|
|||
62
Масянька
28.12.15
✎
08:52
|
(56) Фишка в том, что ЖР вообще не трогаю. Совсем.
|
|||
63
aka AMIGO
28.12.15
✎
09:00
|
(62) В ЖР никакой инфы о запущенной и отработавшей обработке нет.
Посмотрела в свой почтовик? |
|||
64
Масянька
28.12.15
✎
09:02
|
Народ! Попытаюсь объяснить...
В док-те Поступление ТМЦ есть кнопка. По этой кнопке открывается внешняя обработка - указывается файл (Excel) и идет загрузка ТМЦ в док-т. Если в файле есть новая номенклатура (её нет в справочнике) - новая номенклатура создается в справочнике в определенной папке (так, как заведена у поставщика). Есесьно, для новой номенклатуры создаются единицы. Все это - автоматом (то бишь программно). Когда обработка отработала - сумма по док-ту (Поступления) сравнивается с суммой в файле. Док-т проводится (руками). Бумажных док-ов нет. Пока. Вот обработка работала и работала. Все были довольны. И вот в пятницу: пришел товар, пришли док-ты (бумажные). Делаются ценники... И тут выясняется, что есть номенклатура (вот она лежит - нужно ценник делать). В справочнике номенклатуры есть эта позиция (причем, в той папке, где лежит созданная программно). Но в док-те (в 1С) этой номенклатуры нет. Совсем. Сумма по док-ту (1С и бумажный) тютелька в тютельку. Номенклатура заведена не руками - мало того, что папка определенная, так и наименование такое, как у поставщика (там есть нюанс - в квадратных скобках указывается группа). Еще и партия есть (в справочнике Партий) с ГТД. Только док-т партии пустой. Вот я и не могу понять - как, откуда и почему... |
|||
65
Масянька
28.12.15
✎
09:03
|
(63) Да. Спасибо за уделенное время.
|
|||
66
Масянька
28.12.15
✎
09:04
|
(63) Док-т открыт (создан вручную). Обработкой все заполняется - номенклатура есть. И партии формируются...
|
|||
67
HawkEye
28.12.15
✎
09:05
|
(64) как ты выяснила, что номенклатура из этого документа, если
а) суммы документа в 1С и файла и бумажки - совпадают. б) в документе нет этой номенклатуры, в бумажке нет этой номенклатуры, в файле нет это номенклатуры. |
|||
68
lamme
28.12.15
✎
09:06
|
(64)
а как такое может быть если сумма по документу 1С и по бумажному носителю - одинаковая, при этом в документе 1С товара меньше по строкам ? |
|||
69
HawkEye
28.12.15
✎
09:06
|
(66) ты путаешься в показаниях...
"Обработкой все заполняется - номенклатура есть" или все таки "Но в док-те (в 1С) этой номенклатуры нет. Совсем." определись уже )) |
|||
70
lamme
28.12.15
✎
09:07
|
(64)
ТиИ делал ? |
|||
71
Mikeware
28.12.15
✎
09:07
|
потому, что документ не смог провестись (или записаться) - например, из-за транзакции, выполняемой другим пользователем.
|
|||
72
Масянька
28.12.15
✎
09:08
|
(67) В бумажном док-те есть эта номенклатура. И суммы опять совпадают...
Уже думала: поставщик мог переиграть и отгрузить другую позицию - но сумма совпадает (раз) и номенклатура есть в справочнике (два). (69) В док-те (1С) нет этой конкретной номенклатуры. Другая есть. |
|||
73
Mikeware
28.12.15
✎
09:08
|
(68) Да очень просто - пишут сумму по документу сразу в СуммуВзаиморасчетов. И СуммаВзаиморасечтов не совпадает с итогом по строкам
|
|||
74
HawkEye
28.12.15
✎
09:08
|
(70) это онА и чем ТиИ поможет в этом случае? ))
|
|||
75
Масянька
28.12.15
✎
09:08
|
(70) Нет. В партии нет приходного док-та. И ссылки на эту непонятную номенклатуру нет, кроме единиц и партий.
|
|||
76
HawkEye
28.12.15
✎
09:09
|
(72) ну вот... главное во время включить паяльник..
итак.. в файле эта номенклатура есть в документе 1С, вместо нее выбрана другая номенклатура так? |
|||
77
Масянька
28.12.15
✎
09:09
|
(73) Нет.
|
|||
78
Масянька
28.12.15
✎
09:09
|
(76) Нет. Строк меньше. Ровно на одну.
|
|||
79
Mikeware
28.12.15
✎
09:09
|
(72) Значит, руками поменяли. Регистрация исправлений - есть?
|
|||
80
HawkEye
28.12.15
✎
09:09
|
(75) откуда в партии возьмется приходный документ, если эта номенклатура не оприходывалась? ))
|
|||
81
Масянька
28.12.15
✎
09:10
|
(80) Откуда она в справочнике взялась-то?
|
|||
82
HawkEye
28.12.15
✎
09:10
|
(78) строк меньше на одну, а сумма совпадает? )))
кто обработку по загрузке ваял? ))) |
|||
83
Масянька
28.12.15
✎
09:10
|
(79) Нет.
|
|||
84
lamme
28.12.15
✎
09:10
|
(73)
в1С7 суммавзаиморасчетов - это сумма табл части . при этом она в регистр ВзаиморасчетыПокупателей/Поставщиков попадает только при проведении документа. отдельного реквизита в документе - СуммаВзаиморасчетов - нет. |
|||
85
HawkEye
28.12.15
✎
09:10
|
(81) программно создалась, это-же очевидно )
|
|||
86
Mikeware
28.12.15
✎
09:10
|
(81) создалась твоей обработкой
|
|||
87
lamme
28.12.15
✎
09:11
|
(0)
а ты в тестовой базе - загрузи этот ексель и посмотри как загрузка встанет. с этим товаром или нет. Если с этим - то всяко потом документ вручную правили. если нет - разбираться в коде. |
|||
88
Mikeware
28.12.15
✎
09:11
|
(84) авотхрен!
|
|||
89
Масянька
28.12.15
✎
09:11
|
(82) Я.
Там батарейки (2А и 3А). В 1С: 2А - 16 штук. В бумажном: 2А - 8 штук, 3А - 8 штук. Цена и сумма одинаковая. |
|||
90
HawkEye
28.12.15
✎
09:12
|
(84) во первых не тренди...
во вторых, нет такой конфигурации "1С7"... |
|||
91
Масянька
28.12.15
✎
09:12
|
(85) (86) А почему в док-ту не села? Создается же из файла...
(87) Тот файл уже затерли... |
|||
92
aka AMIGO
28.12.15
✎
09:13
|
Стоп-стоп с домыслами! :)
(72) В общем и целом причина мне очевидна. В эту Масянькину обработку передается контекст документа. Документ остается открытым. Читается файл, номенклатура по доп. артикулу записывается в справочник. Там-же, в обработке, в ТЧ контекста делается попытка записи номенклатуры.. При этом: КонтДок.НоваяСтрока() - срабатывает, но! количество строк в ТЧ остается равным нулю! Номенклатура в ТЧ не поступает. Вот и причина сабжа. |
|||
93
HawkEye
28.12.15
✎
09:13
|
(89) "Я" - вот тебе и ответы на все вопросы ))))
я тебе давно говорил завязывай ты с этим делом... код показывай своей нетленки... |
|||
94
Mikeware
28.12.15
✎
09:13
|
(90) "это как - .опа есть, а слова нет?"© :-)
|
|||
95
HawkEye
28.12.15
✎
09:13
|
(91) потому что "Я"... код показывай...
|
|||
96
Mikeware
28.12.15
✎
09:13
|
(93) думаешь, из-за соотношения радиусов? :-)
|
|||
97
lamme
28.12.15
✎
09:15
|
(90)
открой любую типовую конфиг 1С7 - и покажи в любом документе реквизит СуммаВзаиморасчетов. не найдешь. поэтому - сам не трынди. (91) из почты получить еще раз ? если оно конечно там ... |
|||
98
HawkEye
28.12.15
✎
09:15
|
(96) ну есть еще вариант, что кто-то из пользователей шутит над Масей... но я ставлю на радиусы ))
|
|||
99
aka AMIGO
28.12.15
✎
09:15
|
+92 в то-же время подобный оператор Конт.НоваяСтрока() с заполнением реквизитами прекрасно срабатывает в ГМ..
|
|||
100
Масянька
28.12.15
✎
09:17
|
(97) Оно не по почет приходит. С программы поставщика сохраняется в Excel. Короче, тот файл не достать :(
|
|||
101
HawkEye
28.12.15
✎
09:18
|
(97) юноша.... ТиС 9.2 документа ПоступлениеТМЦ
реквизит шапки: СуммаВзаиморасчетов (Сумма документа в валюте взаиморасчетов) давай ты будешь сначала думать, а потом пытаться казаться умным, ок? |
|||
102
oslokot
28.12.15
✎
09:18
|
(97) ЛПП!!!
|
|||
103
aka AMIGO
28.12.15
✎
09:18
|
(100) а причем тут файл?
|
|||
104
HawkEye
28.12.15
✎
09:18
|
(92) ну-да... из 10 раз, в 100 документах, один раз в одном не сработало... ))))
|
|||
105
Масянька
28.12.15
✎
09:19
|
(99) Я тебе говорю, что обработка грузит строки в док-т. После того, как обработка отработает - сравниваются суммы (по док-там 1С и Excel).
Все выяснилось по реальному приходу. Причем, (повторяю) суммы одинаковые. |
|||
106
HawkEye
28.12.15
✎
09:19
|
(100) я конечно могу еще раз предложить показать код... но в принципе это тебе больше надо )
|
|||
107
Масянька
28.12.15
✎
09:20
|
(103) Уже новые приходы были. Сегодня бумажки должны прийти.
|
|||
108
Mikeware
28.12.15
✎
09:20
|
(97) В Комплексной - практически в каждом документе. Хотя бы потому, что валюта взаиморасчетов вполне может отличаться от валюты документа.
|
|||
109
chelentano
28.12.15
✎
09:21
|
(107) По какому реквизиту идёт поиск номенклатуры? Код, артикул? Нет ли задвоения?
|
|||
110
Масянька
28.12.15
✎
09:21
|
(106) На:
Перем КонтекстДокумента; // Переменная, в которой запоминаем контекст редактируемого документа //******************************************************************************** Процедура ПриОткрытии() КонтекстДокумента = Форма.Параметр; КонецПроцедуры // ПриОткрытии //****************************************************************************** Процедура ПриНачалеВыбораЗначения(Элемент, Продолжать) Каталог = "\\Main\DOC\OutPrices\Москва\_NetLab\_Заказы-Резервы\"; Файл = ""; Если Элемент = "ИмяФайлаЗагрузки" Тогда Выбор = ФС.ВыбратьФайл(0, Файл, Каталог, "Файл с прайс-листом"); Если Выбор = 1 Тогда ИмяФайлаЗагрузки = Каталог + Файл; КонецЕсли; КонецЕсли; КонецПроцедуры // ПриНачалеВыбораЗначения //****************************************************************************** Процедура СоздатьПартию(ПартияИсточник = 0, СпрПартии, мГТД, мСтрана, мНомерСтроки) Если ПустоеЗначение(КонтекстДокумента.Номенклатура) = 1 Тогда Возврат; КонецЕсли; Если ПустоеЗначение(КонтекстДокумента.Партия) = 0 Тогда // если партия уже записана - не трогаем ее! Возврат; КонецЕсли; Если ПустоеЗначение(ПартияИсточник) = 0 Тогда Если (ПартияИсточник.ГТД.Выбран() = 1) или (ПартияИсточник.СтранаПроисхождения.Выбран() = 1) или (ПартияИсточник.Свойство.Выбран() = 1) Тогда СпрПартии.ИспользоватьВладельца(КонтекстДокумента.Номенклатура); СпрПартии.Новый(); СпрПартии.ГТД = ПартияИсточник.ГТД; СпрПартии.СтранаПроисхождения = ПартияИсточник.СтранаПроисхождения; СпрПартии.Свойство = ПартияИсточник.Свойство; Попытка СпрПартии.Записать(); Исключение Сообщить("Строка № " + мНомерСтроки + " ошибка." + РазделительСтрок + ОписаниеОшибки(),"I"); Возврат; КонецПопытки; Партия = СпрПартии.ТекущийЭлемент(); КонецЕсли; Иначе СпрПартии.ИспользоватьВладельца(КонтекстДокумента.Номенклатура); СпрПартии.Новый(); СпрПартии.ГТД = мГТД; СпрПартии.СтранаПроисхождения = мСтрана; Попытка СпрПартии.Записать(); Исключение Сообщить("Строка № " + мНомерСтроки + " ошибка." + РазделительСтрок + ОписаниеОшибки(),"I"); Возврат; КонецПопытки; Партия = СпрПартии.ТекущийЭлемент(); КонецЕсли; КонецПроцедуры // СоздатьПартию //****************************************************************************** Процедура Выполнить() // вид номенклатуры мСклад = КонтекстДокумента.Склад.Наименование; Если (СокрЛП(мСклад) = "Материалы") Тогда мВидНоменклатуры = Перечисление.ВидыТМЦ.Материал; Иначе мВидНоменклатуры = Перечисление.ВидыТМЦ.Товар; КонецЕсли; Если СокрЛП(ИмяФайлаЗагрузки) = "" Тогда Предупреждение("Выберите файл для загрузки данных."); Активизировать("ИмяФайлаЗагрузки"); Возврат; КонецЕсли; Предупреждение("Настоятельно рекомендуется закрыть все файлы, открытые в программе ""Excel""."); Excel = СоздатьОбъект("Excel.Application"); Книга = Excel.Application.Workbooks.Open(ИмяФайлаЗагрузки); Лист = Книга.WorkSheets(1); КолВоСтрок = Excel.Cells.CurrentRegion.Rows.Count; // ставка налога с продаж СпрСтавкаНП = СоздатьОбъект("Справочник.СтавкиНП"); СпрСтавкаНП.НайтиПоНаименованию("Без налога"); // классификатор единиц измерения СпрОКЕИ = СоздатьОбъект("Справочник.ОКЕИ"); СпрОКЕИ.НайтиПоКоду("796"); СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура"); СпрГруппа = СоздатьОбъект("Справочник.Номенклатура"); СпрЕдиницы = СоздатьОбъект("Справочник.Единицы"); СпрПартии = СоздатьОбъект("Справочник.Партии"); СпрГТД = СоздатьОбъект("Справочник.ГТД"); СпрСтраны = СоздатьОбъект("Справочник.ОКСМ"); Для НомерСтроки = 2 По КолВоСтрок - 1 Цикл // артикул мАртикул = СокрЛП(Строка(Лист.Cells(НомерСтроки, 2).Value)); // ищем номенклатуру по Артикулу Если СпрНоменклатура.НайтиПоРеквизиту("АртикулПрайс", мАртикул, 1) = 1 Тогда // нашли - выбираем мНоменклатура = СпрНоменклатура.ТекущийЭлемент(); мЕИ = СпрНоменклатура.БазоваяЕдиница; Иначе // не нашли - добавляем новый элемент в группу "_Не обработано" Сообщить("Строка № " + (КонтекстДокумента.НомерСтроки + 1) + "." + РазделительСтрок + " Не найдена номенклатура с артикулом - " + мАртикул + ". Данная номенклатура будет добавлена в папку ""_Не обработано""."); СпрГруппа.НайтиПоНаименованию("_Не обработано"); СпрНоменклатура.ИспользоватьРодителя(СпрГруппа.ТекущийЭлемент()); СпрНоменклатура.Новый(); СпрНоменклатура.Наименование = СокрЛП(Строка(Лист.Cells(НомерСтроки, 3).Value)); СпрНоменклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Прочее; СпрНоменклатура.ПолнНаименование = СокрЛП(Строка(Лист.Cells(НомерСтроки, 3).Value)); СпрНоменклатура.АртикулПрайс = мАртикул; СпрНоменклатура.Записать(); // штрих-код КодТовараЧисло = Число(СокрЛ(Прав(СпрНоменклатура.Код, 5))); Для Сч = 1 По КодТовараЧисло Цикл ДопКод = глДополнитьСтрокуЛ(Строка(Сч), "0", 5); ВремШтрихкод = глСформироватьШтрихкод(глПрефиксВесовогоШтрихкода, ДопКод + "00000"); КонецЦикла; // единицы измерения СпрЕдиницы.ИспользоватьВладельца(СпрНоменклатура.ТекущийЭлемент()); СпрЕдиницы.Новый(); СпрЕдиницы.ОКЕИ = СпрОКЕИ.ТекущийЭлемент(); СпрЕдиницы.Коэффициент = 1; СпрЕдиницы.ШтрихКод = ВремШтрихкод; СпрЕдиницы.Записать(); СпрНоменклатура.УстановитьАтрибут("ОсновнаяЕдиница", СпрЕдиницы.ТекущийЭлемент()); СпрНоменклатура.УстановитьАтрибут("БазоваяЕдиница", СпрЕдиницы.ТекущийЭлемент()); СпрНоменклатура.СтавкаНДС = Перечисление.СтавкиНДС.НДС18; СпрНоменклатура.СтавкаНП = СпрСтавкаНП.ТекущийЭлемент(); СпрНоменклатура.Записать(); мНоменклатура = СпрНоменклатура.ТекущийЭлемент(); мЕИ = СпрНоменклатура.БазоваяЕдиница; КонецЕсли; // количество мКолВо = Лист.Cells(НомерСтроки, 4).Value; // сумма мСумма = Лист.Cells(НомерСтроки, 5).Value; // ставка НДС мСтавкаНДС = Перечисление.СтавкиНДС.НДС18; // ГТД мГТД = СокрЛП(Строка(Лист.Cells(НомерСтроки, 6).Value)); Если (СтрДлина(СокрЛП(мГТД)) = 0) ИЛИ (СтрДлина(СокрЛП(мГТД)) < 10) Тогда СпрГТД.НайтиПоНаименованию(СокрЛП("...."),,1); мГТДСправ = СпрГТД.ТекущийЭлемент(); Иначе Если СпрГТД.НайтиПоНаименованию(СокрЛП(мГТД),,1) = 0 Тогда СпрГТД.Новый(); СпрГТД.Наименование = СокрЛП(мГТД); СпрГТД.Записать(); мГТДСправ = СпрГТД.ТекущийЭлемент(); Сообщить("В справочник ""ГТД"" добавлена строка ГТД: " + мГТДСправ.Наименование); Иначе мГТДСправ = СпрГТД.ТекущийЭлемент(); КонецЕсли; КонецЕсли; // страна мСтрана = СокрЛП(Строка(Лист.Cells(НомерСтроки, 7).Value)); СпрСтраны.НайтиПоНаименованию(СокрЛП(мСтрана)); мСтранаСправ = СпрСтраны.ТекущийЭлемент(); // заполняем строку КонтекстДокумента.НоваяСтрока(); КонтекстДокумента.Номенклатура = мНоменклатура; КонтекстДокумента.Единица = мЕИ; КонтекстДокумента.Количество = мКолВо; КонтекстДокумента.Сумма = мСумма; КонтекстДокумента.СтавкаНДС = мСтавкаНДС; КонтекстДокумента.Коэффициент = 1.000; КонтекстДокумента.ВидТМЦ = мВидНоменклатуры; глПересчетТаблЧасти(КонтекстДокумента, "Сумма"); СоздатьПартию(, СпрПартии, мГТДСправ, мСтранаСправ, НомерСтроки); КонтекстДокумента.Партия = СпрПартии.ТекущийЭлемент(); КонтекстДокумента.Партия.ГТД = СпрПартии.ГТД; КонецЦикла; Excel.DisplayAlerts = 0; Excel.ActiveWorkBook.Close(0); Предупреждение("Готово."); Форма.Закрыть(); КонецПроцедуры |
|||
111
Масянька
28.12.15
✎
09:21
|
(109) По артикулу. Нет, задвоения нет.
|
|||
112
chelentano
28.12.15
✎
09:22
|
+(109) Не может ли код (ну или что там у вас) "Батарейка 2А" совпадать с кодом "Батарейка 3А"?
|
|||
113
aka AMIGO
28.12.15
✎
09:22
|
(110) чем-то тебя не устроил мой вариант?
|
|||
114
Масянька
28.12.15
✎
09:22
|
(112) Нет. Коды и артикулы разные.
|
|||
115
Масянька
28.12.15
✎
09:23
|
(113) Я ненавижу (!!!), когда не понимаю, почему ошибка возникла :(
|
|||
116
chelentano
28.12.15
✎
09:23
|
(114) А в файле?
|
|||
117
Масянька
28.12.15
✎
09:23
|
(116) Нету файла. Уже :(
|
|||
118
HawkEye
28.12.15
✎
09:25
|
(110) покажи АртикулПрайс у "2А" и "3А"
|
|||
119
aka AMIGO
28.12.15
✎
09:26
|
(115) Я тебе объяснил причину ошибки. в (92).
Посмотри в отладчике, останови на ..НоваяСтрока(), В табло: ...КоличествоСтрок() проследи за заполнением реквизитов строки контекста документа.. Вроде не так сложно.. И всё видно. |
|||
120
Mikeware
28.12.15
✎
09:27
|
Мораль: если "оригиналы заказов" могут утрачиваться - пишите лог, храните копии.
зы. табличка с регистрацией изменеий документов была самой большой в базе... |
|||
121
Масянька
28.12.15
✎
09:27
|
1379597, код - 6290
1379594, код - 6291 |
|||
122
chelentano
28.12.15
✎
09:29
|
имхо, косяк в файле, две позиции с одинаковым артикулом (это если допустить, что обработка работает верно)
|
|||
123
HawkEye
28.12.15
✎
09:30
|
(121) значит в файле было
1379597 - 16 шт 1379594 - 0 шт или наоборот. (122) тогда бы номенклатура не создалась |
|||
124
Масянька
28.12.15
✎
09:31
|
(122) Но сели-то с разными артикулами...
Мне тоже кажется, что косяк в файле... Суммы проверяются, а количество строк - нет... Но с другой стороны - суммы не сошлись бы... |
|||
125
aka AMIGO
28.12.15
✎
09:31
|
(122) (123) Да нет, немного не то.. всё в порядке с файлом, проверено
Еще раз: В обработку поступает контекст дока. Доходит до записи строки, но в контекст строка не добавляется. ТЧ после обработки - пуста. А в Справочник Номенклатура всё пишется правильно. |
|||
126
Mikeware
28.12.15
✎
09:32
|
(125) njulf ,s rjkbxtcndf yt cjikbcm
|
|||
127
Масянька
28.12.15
✎
09:32
|
(123) Вот похоже... И партия села, но не провелась (док-та поступления нет), потому, как кол-во 0...
|
|||
128
Mikeware
28.12.15
✎
09:32
|
(125) тогда бы количества не сошлись
|
|||
129
Масянька
28.12.15
✎
09:32
|
(125) А я тебе говорю, что добавляется.
|
|||
130
aka AMIGO
28.12.15
✎
09:33
|
(129) Ну, хорошо.
|
|||
131
chelentano
28.12.15
✎
09:35
|
(123), (124) Так, может, она раньше когда-то была создана... А вообще, без исходного файла трудно понять. Согласен со (120) - пишите логи на будущее, если файлы не сохраняются
|
|||
132
HawkEye
28.12.15
✎
09:37
|
(125) с чего ты это взял про файл? )) не правильно все в твоей логике
(131) во первых, коды по порядку идут, значит создались друг за другом, во вторых если бы раньше создалась использовалась где-нибудь еще. |
|||
133
chelentano
28.12.15
✎
09:43
|
(125) Если в контекст строка не добавилась - почему сошлись суммы?
(132) Ну тогда, ты прав в (123), один фиг без файла или логов не разобраться... Или реально кто-то из пользователей подменил потом номенклатуру |
|||
134
Масянька
28.12.15
✎
11:01
|
А что есть "PARENTID |ID parent obj"?
|
|||
135
Остап Сулейманович
28.12.15
✎
11:03
|
(134) АйДи родителя | родительского объекта.
|
|||
136
Масянька
28.12.15
✎
11:04
|
(135) Вас пока дождешься... Уже сама нашла :)
|
|||
137
Злопчинский
28.12.15
✎
11:11
|
смотрите исходный файл.
вроде все возможные моменты обсосоали. |
|||
138
Mikeware
28.12.15
✎
11:13
|
(136) а зачем искать? написано же - "parent"
|
|||
139
Bigbro
28.12.15
✎
11:36
|
проверь в предпоследней строке партия и ГТД правильные или от последней строки.
в смысле от последней = несозданной, которая должна была быть последней. |
|||
140
Масянька
28.12.15
✎
12:52
|
(139) Смешно, но они одинаковые...
6 штук (те, что сели в док-т) и 6 штук (те, что не сели в док-т). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |