![]() |
![]() |
![]() |
|
Как перезаполнить единицу хранения и единицу для отчетов? | ☑ | ||
---|---|---|---|---|
0
ЛучшаяДевушка в СССР
20.09.10
✎
15:37
|
мне нужно перезаполнить единицы измерения в справочнике номенклатура, единицу для отчетов и единицу хранения остатков, я это делала такой обработкой
ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(, Объект.Ссылка); Если ВыборкаЕдиниц.Следующий() Тогда Объект.ЕдиницаХраненияОстатков = ВыборкаЕдиниц.Ссылка; Объект.ЕдиницаДляОтчетов = ВыборкаЕдиниц.Ссылка; КонецЕсли; Объект.ОбменДанными.Загрузка = Истина; Объект.Записать(); и все бы хорошо, но если у номенклатуры две единицы измерения, то она берет первую из них, а мне надо, чтобы брала базовую единицу измерения подскажите, как можно сделать? |
|||
1
Defender aka LINN
20.09.10
✎
15:39
|
(0) Не вижу никаких причин, которые помешали бы тебе сравнить единицу по классификатору с базовой единицей.
|
|||
2
IronDemon
20.09.10
✎
15:39
|
Найти в ВыборкаЕдиниц нужную ЕдиницаПоКлассификатору
|
|||
3
mikecool
20.09.10
✎
15:39
|
заменить единицу хранения при остатках?
|
|||
4
Ayvengo
20.09.10
✎
15:48
|
ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору",Номенклатура.БазоваяЕдиницаИзмерения,,Номенклатура.Ссылка);
попробуйте так искать единицу измерения |
|||
5
mikecool
20.09.10
✎
15:48
|
так все таки - ббаза пустая или что то на остатках есть?
|
|||
6
ЛучшаяДевушка в СССР
20.09.10
✎
15:50
|
я переносила данные из одной базы в другую и у меня коряво перенеслась номенклатура... есть базовая единица измерения, а единица для отчетов и единица хранения остатков - пустые...
есть единицы по классификатору, но они не выделены жирным... при этом если я открываю справочник и жму Ок, то номенклатура перезаписывается и в единицу для отчетов и единицу хранения остатков записывается базовая единица и одна из единиц по классификатору становится выделена жирным... но это при условии, что нет документов движения... а документы есть, поэтому я номенклатуру перезаписывала принудительно этой обработкой... и теперь у меня в базовой единице одна единица, а выделена по классификатору другая, и в отчетах и в остатках другая соответсвенно... |
|||
7
ЛучшаяДевушка в СССР
20.09.10
✎
15:50
|
(5) есть на остатках
|
|||
8
mikecool
20.09.10
✎
15:51
|
(7) остатки хранятся в единице хранения остатков
в чем же они сейчас, если эта единица незаполнена? |
|||
9
ЛучшаяДевушка в СССР
20.09.10
✎
15:53
|
(8) ни в чем - пустые отчеты
|
|||
10
Ayvengo
20.09.10
✎
15:54
|
ЛучшаяДевушка в СССР, как же они тогда есть, если отчеты пустые :) Но в принципе не суть ... посмотрите пункт (4) попробуйте устанавливать таким образом единицу, если что-то не понятно, спрашивайте
|
|||
11
mikecool
20.09.10
✎
15:55
|
1) установить единицу в справчнике
2) установить единицу в документе 3) перепровести документы чтобы не париться с обменом данными, можно распровести все документы ) |
|||
12
ЛучшаяДевушка в СССР
20.09.10
✎
15:56
|
(10) в базовых единицах отчеты были, а в единицах для Отчетов и в единицах хранения остатков - пусто
(11) установить как? руками? сначала отменить проведение? (иначе не дает) |
|||
13
mikecool
20.09.10
✎
15:58
|
"и в единицах хранения остатков - пусто "
остатки хранятся в единице хранения остатков... почему тогда пусто? в движениях нет единицы? |
|||
14
ЛучшаяДевушка в СССР
20.09.10
✎
16:01
|
я конверьтирую из одной базы в другую, почему так переносится - для меня темный лес
|
|||
15
ЛучшаяДевушка в СССР
20.09.10
✎
16:03
|
я вижу, что у номенклатуры есть только базовая единица, а остальные две пустые...
если перезаписываю - то появляются и две другие, но только если я отменю все доки... я могу отменить все документы и потом их снова провести, но как мне перебрать 2000 позиций, чтобы они перезаписались? я их это обработкой и перезаписала... но если у товара две единицы по классификатору, то она берет первую попавшуюся, и ее же делает основной |
|||
16
Ayvengo
20.09.10
✎
16:04
|
Ну понятно, в справочники не добавились нужные значение, нужно создавать их
|
|||
17
ЛучшаяДевушка в СССР
20.09.10
✎
16:04
|
(16) а как?
|
|||
18
mikecool
20.09.10
✎
16:05
|
(16) +1
|
|||
19
ЛучшаяДевушка в СССР
20.09.10
✎
16:07
|
(16),(18) напишите как, пожалуйста:)
сами мы не местные... |
|||
20
Ayvengo
20.09.10
✎
16:07
|
Так.. погодите .. на закладке Единицы измерения есть нужные Вам единицы?
|
|||
21
mikecool
20.09.10
✎
16:09
|
(19) добавлять в подч справочник единицы измерения, а потом назначать их в соотв реквизиты номенклатуры
|
|||
22
ЛучшаяДевушка в СССР
20.09.10
✎
16:09
|
(20) да
изначально есть две |
|||
23
Ayvengo
20.09.10
✎
16:14
|
Сейчас попробую написать обработку, только там бяда будет, если две одинаковые единицы измерения (т.е. единицы измерения в которых одинаковые Классификатор единиц измерения)
|
|||
24
Ayvengo
20.09.10
✎
16:19
|
Написать написал, но слепо не доверяйте :) Вдруг где чего накосячил, на быструю руку без проверки ;)
Запрос = Новый Запрос("ВЫБРАТЬ | спрНоменклатура.Номенклатура, | спрНоменклатура.БазоваяЕдиницаИзмерения, | спрНоменклатура.ЕдиницаИзмерения, | спрНоменклатура.КоличествоОдинаковых |ИЗ | (ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура, | Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения, | ЕдиницыИзмерения.Ссылка КАК ЕдиницаИзмерения, | СУММА(1) КАК КоличествоОдинаковых | ИЗ | Справочник.Номенклатура КАК Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения | ПО Номенклатура.Ссылка = ЕдиницыИзмерения.Владелец | И Номенклатура.БазоваяЕдиницаИзмерения = ЕдиницыИзмерения.ЕдиницаПоКлассификатору | ГДЕ | Номенклатура.Ссылка В ИЕРАРХИИ(&Номенклатура) | И (НЕ Номенклатура.ЭтоГруппа) | | СГРУППИРОВАТЬ ПО | Номенклатура.Ссылка, | Номенклатура.БазоваяЕдиницаИзмерения, | ЕдиницыИзмерения.Ссылка) КАК спрНоменклатура |ГДЕ | спрНоменклатура.КоличествоОдинаковых = &1"); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Номенклатура = Выборка.Номенклатура.ПолучитьОбъект(); Номенклатура = Справочники.Номенклатура.СоздатьЭлемент(); Номенклатура.ЕдиницаХраненияОстатков = Выборка.ЕдиницаИзмерения; Номенклатура.ЕдиницаДляОтчетов = Выборка.ЕдиницаИзмерения; Попытка Номенклатура.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; |
|||
25
Ayvengo
20.09.10
✎
16:20
|
эх.. вот уже и косячок заметил, к примеру &1 надо заменить на 1 а не забудьте установить параметр Номенклатура
|
|||
26
Ayvengo
20.09.10
✎
16:21
|
поправил, но мож еще че не заметил
Запрос = Новый Запрос("ВЫБРАТЬ | спрНоменклатура.Номенклатура, | спрНоменклатура.БазоваяЕдиницаИзмерения, | спрНоменклатура.ЕдиницаИзмерения, | спрНоменклатура.КоличествоОдинаковых |ИЗ | (ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура, | Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения, | ЕдиницыИзмерения.Ссылка КАК ЕдиницаИзмерения, | СУММА(1) КАК КоличествоОдинаковых | ИЗ | Справочник.Номенклатура КАК Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения | ПО Номенклатура.Ссылка = ЕдиницыИзмерения.Владелец | И Номенклатура.БазоваяЕдиницаИзмерения = ЕдиницыИзмерения.ЕдиницаПоКлассификатору | ГДЕ | Номенклатура.Ссылка В ИЕРАРХИИ(&Номенклатура) | И (НЕ Номенклатура.ЭтоГруппа) | | СГРУППИРОВАТЬ ПО | Номенклатура.Ссылка, | Номенклатура.БазоваяЕдиницаИзмерения, | ЕдиницыИзмерения.Ссылка) КАК спрНоменклатура |ГДЕ | спрНоменклатура.КоличествоОдинаковых = 1"); //На форме обработку надо завести реквизит номенклатура Запрос.УстановитьПараметр("Номенклатура",Номенклатура); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Номенклатура = Выборка.Номенклатура.ПолучитьОбъект(); Номенклатура = Справочники.Номенклатура.СоздатьЭлемент(); Номенклатура.ЕдиницаХраненияОстатков = Выборка.ЕдиницаИзмерения; Номенклатура.ЕдиницаДляОтчетов = Выборка.ЕдиницаИзмерения; Попытка Номенклатура.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; |
|||
27
ЛучшаяДевушка в СССР
20.09.10
✎
16:21
|
(26) сейчас попробую, спасибо
|
|||
28
ЛучшаяДевушка в СССР
20.09.10
✎
16:23
|
(26)
{(28,46)}: Переменная не определена (Номенклатура) Запрос.УстановитьПараметр("Номенклатура",<<?>>Номенклатура); я к своему сожалению совсем не шарю... |
|||
29
Ayvengo
20.09.10
✎
16:25
|
на форме обработки надо установить реквизит Номенклатура, или если хотите без фильтра по номенклатуре, что бы весь справочник переделал надо убрать фильтр на номенклатуру ..
как-то так без фильтра, по всему справочнику... Запрос = Новый Запрос("ВЫБРАТЬ | спрНоменклатура.Номенклатура, | спрНоменклатура.БазоваяЕдиницаИзмерения, | спрНоменклатура.ЕдиницаИзмерения, | спрНоменклатура.КоличествоОдинаковых |ИЗ | (ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура, | Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения, | ЕдиницыИзмерения.Ссылка КАК ЕдиницаИзмерения, | СУММА(1) КАК КоличествоОдинаковых | ИЗ | Справочник.Номенклатура КАК Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения | ПО Номенклатура.Ссылка = ЕдиницыИзмерения.Владелец | И Номенклатура.БазоваяЕдиницаИзмерения = ЕдиницыИзмерения.ЕдиницаПоКлассификатору | ГДЕ | (НЕ Номенклатура.ЭтоГруппа) | | СГРУППИРОВАТЬ ПО | Номенклатура.Ссылка, | Номенклатура.БазоваяЕдиницаИзмерения, | ЕдиницыИзмерения.Ссылка) КАК спрНоменклатура |ГДЕ | спрНоменклатура.КоличествоОдинаковых = 1"); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Номенклатура = Выборка.Номенклатура.ПолучитьОбъект(); Номенклатура = Справочники.Номенклатура.СоздатьЭлемент(); Номенклатура.ЕдиницаХраненияОстатков = Выборка.ЕдиницаИзмерения; Номенклатура.ЕдиницаДляОтчетов = Выборка.ЕдиницаИзмерения; Попытка Номенклатура.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; |
|||
30
ЛучшаяДевушка в СССР
20.09.10
✎
16:28
|
не хочет
Перед записью в элементе справочника "Номенклатура" необходимо заполнить "базовая единица"! У единицы для отчетов номенклатуры "" неверно указан владелец! Перед записью в элементе справочника "Номенклатура" необходимо заполнить "вид номенклатуры"! {(33)}: Ошибка при вызове метода контекста (Записать): Операция не выполнена! |
|||
31
Ayvengo
20.09.10
✎
16:31
|
Господя ... что же у Вас перенеслось? о_О
Ну так это он у некоторых номенклатур выдал или у всех подряд? //начинаю ненавидеть стандартные обмены данными, особенно в УПП :D |
|||
32
Ayvengo
20.09.10
✎
16:32
|
Заменитие
Попытка Номенклатура.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; На этот код, чтобы удобнее было разбираться с результатом Попытка Номенклатура.Записать(); Исключение Сообщить("Не удалось записать номенклатуру: """ + Номенклатура + """"); Сообщить(ОписаниеОшибки()); КонецПопытки; |
|||
33
Ayvengo
20.09.10
✎
16:39
|
Как успехи?:)
|
|||
34
ЛучшаяДевушка в СССР
20.09.10
✎
16:40
|
(31) это не УПП, УТ...
я Вам лично потом шепотом скажу, чьих это рук дело:)) (33) сейчас отпишусь:)) |
|||
35
Ayvengo
20.09.10
✎
16:42
|
(34) да я сам с УПП маюсь, а пример для УТ делал :)
|
|||
36
ЛучшаяДевушка в СССР
20.09.10
✎
16:59
|
(35) в итоге вот это обработка работает
ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору",Объект.БазоваяЕдиницаИзмерения,,Объект.Ссылка); Если ЕдиницаИзмерения <> Неопределено Тогда Объект.ЕдиницаХраненияОстатков = ЕдиницаИзмерения; Объект.ЕдиницаДляОтчетов = ЕдиницаИзмерения; Объект.ОбменДанными.Загрузка = Истина; Объект.Записать(); КонецЕсли; при Объект.Это группа = Ложь а Ваша еще ругается в соседней копии - не закончилась еще:))) |
|||
37
ЛучшаяДевушка в СССР
20.09.10
✎
17:00
|
+(35) вот это=вот эта
|
|||
38
ЛучшаяДевушка в СССР
20.09.10
✎
17:08
|
(32) я не знаю, что эта обработка пытается сделать, но выдает вот это
Перед записью в элементе справочника "Номенклатура" необходимо заполнить "базовая единица"! У единицы для отчетов номенклатуры "" неверно указан владелец! Перед записью в элементе справочника "Номенклатура" необходимо заполнить "вид номенклатуры"! Не удалось записать номенклатуру: "<>" {(33)}: Ошибка при вызове метода контекста (Записать): Операция не выполнена! |
|||
39
Ayvengo
20.09.10
✎
17:18
|
(36) ну эт тоже один из моих первых советов :)
-- (36) работает в цикле или это вся обработка? %) И в какое место вы их тыкаете эти коды? :) |
|||
40
ЛучшаяДевушка в СССР
20.09.10
✎
17:39
|
(39).1 это может быть, только я хотела кнопку "сделать все" :)
(39).2 я, наверное, изначально не все написала и хотела, чтобы меня поняли) это я в УниверсальномПодбореИОбработкеОбъектов выбираю справочник Номенклатура, на закладке Отбор пишу Объект.Это группа = Ложь и в Произвольный алгоритм вставляю код |
|||
41
Ayvengo
20.09.10
✎
18:08
|
О как, а где вы взяли эту обработку? :) Что-то стандартных таких не припомню
|
|||
42
Ayvengo
20.09.10
✎
18:09
|
Просто та штука, которая долгая - она обрабатывает каждый элемент справочника номенклатура, каждый из них изменяет, каждый из них записывает - от сюда - много времени уходит. И заодно можно увидеть свои ошибки, а если Ваша обработка их не выдает, скорее всего она даже не пытается их записать ;)
|
|||
43
ЛучшаяДевушка в СССР
20.09.10
✎
18:23
|
(41) с ИТС
(42) а то, что в комментарии это не то? Перед записью в элементе справочника "Номенклатура" необходимо заполнить "базовая единица"! У единицы для отчетов номенклатуры "" неверно указан владелец! Перед записью в элементе справочника "Номенклатура" необходимо заполнить "вид номенклатуры"! Не удалось записать номенклатуру: "<>" {(33)}: Ошибка при вызове метода контекста (Записать): Операция не выполнена! |
|||
44
ЛучшаяДевушка в СССР
20.09.10
✎
18:23
|
+(43) с диска в смысле)
|
|||
45
ЛучшаяДевушка в СССР
20.09.10
✎
18:24
|
(42) так может ее надо было как отдельную обработку сделать, а не через Универсальный Подбор И Обработку Объектов, поэтому и не получилось?
|
|||
46
kn
20.09.10
✎
18:33
|
А может лучше правила подправить в части единиц измерения? Cм. например
v8: Конвертация ЕдиницИзмерения |
|||
47
ЛучшаяДевушка в СССР
20.09.10
✎
18:38
|
(46) я бы тоже так хотела, только не умею я...
я больше юзерствую... |
|||
48
kn
20.09.10
✎
18:42
|
а я поиском пользуюсь.
|
|||
49
ЛучшаяДевушка в СССР
20.09.10
✎
19:04
|
(48) я тоже пользуюсь вроде, но писать еще не научилась...
спасибо всем большое... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |