Имя: Пароль:
1C
1С v8
бред в справочнике
,
0 BarakuzA
 
10.10.11
19:24
Описание проблемы:
после переноса справочника номенклатура, обнаруживается сл вещь.
если в документ поступления через подбор начать выбирать номенклатуру, то при выборе определенных позиций в табличную часть они переносятся не как новая строка, а добавляются к значению количества другой позиции. складывается такое впечатление, что внутренние индексы элементов справочника одинаковые, а коды в справочнике разные.
как быть???
1 vicof
 
10.10.11
19:26
Обработку подбора смотри. Так и должно быть, перенос ни при чем.
2 Живой Ископаемый
 
10.10.11
19:26
Во-первых сказать название и релиз конфигурации, вовторых залезть в отладчик. Были(или все еще есть) такие конфигурации, в которых подбор происходит не по-позиционно, а скажем по одинаковой группе, или характеристике, уж не вспомню... И если ты залезешь в отладчик, в процедуру подбора, то сразу это заметишь.
3 shuhard
 
10.10.11
19:26
(0) как быть - менять профессию,
если кривые единицы измерения принимать за облом платформы
4 BarakuzA
 
10.10.11
19:28
(2) Управление торговлей 10.3.12.3
5 Живой Ископаемый
 
10.10.11
19:28
2(4) уже тебе все сказали
6 BarakuzA
 
10.10.11
19:29
как это исправить??? дайте какие нибудь рекомендации, пожайлуста
7 shuhard
 
10.10.11
19:31
(6) ввести правильные единицы измерения
подчиненные товарам
а не ту херню, что ты сделал
1 шт. на всех
8 BarakuzA
 
10.10.11
19:36
а можно какойнибудь обработкой проверить всю номенклатуру???
9 shuhard
 
10.10.11
19:39
(8) написать запрос на наличие подчиненных единиц измерения - 2 минуты

он же с Имеющий = 0

3 минуты
10 BarakuzA
 
10.10.11
19:51
(9) - не могу сообразить как, помогите...
11 BarakuzA
 
10.10.11
20:09
помогите написать запрос!!!!!!!!!!!!!
12 BarakuzA
 
10.10.11
20:14
ВЫБРАТЬ
Номенклатура.ЕдиницаХраненияОстатков.Владелец,
Номенклатура.Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
13 BarakuzA
 
10.10.11
20:27
(7) - ввести правильные единицы, всю номенклатуру вручную править???
14 shuhard
 
10.10.11
20:30
(13) кто-то мешает написать обработку ?
15 BarakuzA
 
10.10.11
20:34
(14) да отсутствие достаточных для этого знаний. суть этой обработки, чтобы присвоить новое значение реквизиту единица хранения остатков???
16 BarakuzA
 
10.10.11
20:49
гденибудь можно скачать готовую обработку???
17 Eugene_life
 
10.10.11
20:59
(16) Каждому элементу номенклатуры должна соответствовать своя единица измерения, у которой есть ссылка на классификатор. Как-то так.
18 BarakuzA
 
10.10.11
21:04
(17) - после того как будут исправлены единицы измерения в справочнике, что нужно сделать с документами движений??? перепровести?
19 shuhard
 
10.10.11
21:06
(18) зависит от того был в ТЧ документов правильный коэффициент или нет
20 BarakuzA
 
10.10.11
21:07
у всей номенклатуры коэф. 1
21 BarakuzA
 
10.10.11
21:08
и в документах тоже 1 у всех
22 Eugene_life
 
10.10.11
21:08
(18) перепровести
23 shuhard
 
10.10.11
21:10
(21) тогда движения не изменяться от перепроведения
24 BarakuzA
 
10.10.11
21:15
если все правильно понимаю - отменить все документы, исправить номенклатуру (единицы измерения) и перепровести документы, так???
25 shuhard
 
10.10.11
21:19
(24) если это типовая,
то загрузка=Истина сделает не нужным распроведение документов
26 BarakuzA
 
10.10.11
21:20
(25) конф типовая,
27 shuhard
 
10.10.11
21:21
(26) так открой модуль справочника номенклатура и позырь перед записью
28 BarakuzA
 
10.10.11
21:25
Если Не Услуга И Ссылка.ЕдиницаХраненияОстатков <> ЕдиницаХраненияОстатков И ПолныеПрава.Номенклатура_СуществуютСсылки(Ссылка, СуществуютСсылки) Тогда
               ТекстСообщения = "Единица """ + СокрЛП(Ссылка.ЕдиницаХраненияОстатков) + """ является единицей хранения остатков для """ + Наименование + """
               |и уже участвует в товародвижении.
               |Изменить эту единицу уже нельзя!";
               ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ);
           КонецЕсли;
---
закоментировать и менять единицы, так???
29 BarakuzA
 
10.10.11
21:35
или как лучше менять единицы??? обработка постоянно ругается.
30 BarakuzA
 
10.10.11
21:41
(25) смысл дошел...
31 BarakuzA
 
10.10.11
21:50
закомментировать вот это
           Если Не Услуга И Ссылка.ЕдиницаХраненияОстатков <> ЕдиницаХраненияОстатков И ПолныеПрава.Номенклатура_СуществуютСсылки(Ссылка, СуществуютСсылки) Тогда
               ТекстСообщения = "Единица """ + СокрЛП(Ссылка.ЕдиницаХраненияОстатков) + """ является единицей хранения остатков для """ + Наименование + """
               |и уже участвует в товародвижении.
               |Изменить эту единицу уже нельзя!";
               ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ);
           КонецЕсли;

исправить справочник номенклатуры, и вернуть обратно
32 BarakuzA
 
10.10.11
21:56
подскажите что нужно убрать,чтобы наконец исправить справочник??? в модуле перед запись закомментировал строки, но владелец не меняется...
33 Живой Ископаемый
 
10.10.11
21:59
ничего не нужно убирать
Нужно сказать для каждой номенклатуры:
Объект = СссылкаНоменкалатуры.ПолучитьОбъект();
Объект.Обменданными.Загрузка = Истина;
Объект.ЕдиИзм = СсылкаНаПравильнуюЕдИзмКакБыТыЕеНеПолучил;
Объект.Записать();
34 BarakuzA
 
10.10.11
22:03
а потом присвоить нужные значения обработкой?

данные строки выполнить с помощью новой обработки?
35 BarakuzA
 
10.10.11
22:04
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Для каждого Строка Из Номенклатура Цикл
   
       Если Строка.Пометка И ЗначениеЗаполнено(Строка.НоваяЕдиницаПоКлассификатору) Тогда
           ЕдДляОтчетов=Строка.ЕдиницаДляОтчетов.ПолучитьОбъект();
           ЕдДляОтчетов.Наименование=Строка.НоваяЕдиницаПоКлассификатору.Наименование;
           ЕдДляОтчетов.ЕдиницаПоКлассификатору=Строка.НоваяЕдиницаПоКлассификатору;
           ЕдДляОтчетов.Записать();
           Строка.ЕдиницаДляОтчетов=ЕдДляОтчетов.Ссылка;
           ЕдХранения=Строка.ЕдиницаХраненияОстатков.ПолучитьОбъект();
           
           Если ЕдХранения<>ЕдДляОтчетов Тогда
               ЕдХранения.Наименование=Строка.НоваяЕдиницаПоКлассификатору.Наименование;
               ЕдХранения.ЕдиницаПоКлассификатору=Строка.НоваяЕдиницаПоКлассификатору;
               ЕдХранения.Записать();
           КонецЕсли;
           Строка.ЕдиницаХраненияОстатков=ЕдХранения.Ссылка;
           Номенклатура_=Строка.Номенклатура.Ссылка.ПолучитьОбъект();
           Номенклатура_.БазоваяЕдиницаИзмерения=Строка.НоваяЕдиницаПоКлассификатору;
           Номенклатура_.записать();
           Строка.ЕдиницаИзмерения=Строка.НоваяЕдиницаПоКлассификатору;
       КонецЕсли;
   
   КонецЦикла;     // Вставить содержимое обработчика.
КонецПроцедуры

Процедура Заполнить(Кнопка)
   Если НЕ ЗначениеЗаполнено(ЕдиницаИзмерения) Тогда
        Предупреждение("Необходимо выбрать новую единиу измерения");
        возврат;  
   КонецЕсли;
   Запрос=Новый запрос;
   Запрос.Текст="ВЫБРАТЬ
                |  Номенклатура.Ссылка КАК Номенклатура,
                |  Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
                |  Номенклатура.ЕдиницаДляОтчетов КАК ЕдиницаДляОтчетов,
                |  Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХраненияОстатков,
                |  &НоваяЕдиницаПоКлассификатору КАК НоваяЕдиницаПоКлассификатору,
                |  истина КАК Пометка
                |ИЗ
                |  Справочник.Номенклатура КАК Номенклатура
                |ГДЕ
                |  (НЕ Номенклатура.ЭтоГруппа)
                |  И Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)";
   Запрос.УстановитьПараметр("Ссылка",ГруппаНоменклатуры);
   Запрос.УстановитьПараметр("НоваяЕдиницаПоКлассификатору",ЕдиницаИзмерения);
   Номенклатура.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
36 BarakuzA
 
10.10.11
22:10
напишите плиззз как это должно быть правильно...
37 BarakuzA
 
10.10.11
22:29
сказал для каждой номенклатуры, теперь реквизит ЕдиницаХраненияОстатков - пустое значение. дальше надо присвоить значение???
38 BarakuzA
 
10.10.11
22:30
напишите плиззз как это должно быть правильно...!!!!!!!!!!!!
39 BarakuzA
 
10.10.11
22:50
HELP!!!
40 Живой Ископаемый
 
10.10.11
23:04
2(35) чувак, что тебе за кайф глотать разжеванное? ты что - птенец пингвина?

вот тут:

           Номенклатура_=Строка.Номенклатура.Ссылка.ПолучитьОбъект();
           Номенклатура_.БазоваяЕдиницаИзмерения=Строка.НоваяЕдиницаПоКлассификатору;
Номенклатура_.ОбменДанными.Загрузка = Истина;//и все!!!
           Номенклатура_.записать();
41 BarakuzA
 
10.10.11
23:11
извините,но едхранения.владелец не изменилась
42 Живой Ископаемый
 
10.10.11
23:15
я и не предлагал у единицы хранения менять владельца. я предлагал у номенклатуры менять единицу хранения...
43 BarakuzA
 
10.10.11
23:16
а как же быть с владельцем??? как его поменять, чтобы соответствовал???
44 shuhard
 
10.10.11
23:17
(42) пациент мёртв,после  4 часа реанимация бессильна
45 Живой Ископаемый
 
10.10.11
23:17
какой владелец? можешь выплюнуть жвачку изо рта и нарисовать картинку? А лучше позвать взрослых, потому что уже ночь...
46 BarakuzA
 
10.10.11
23:21
ВЫБРАТЬ
Номенклатура.ЕдиницаХраненияОстатков.Владелец,
Номенклатура.Наименование,
Номенклатура.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура

в результате запроса видно, что одной позиции номенклатуры присвоена единица измерения другой позиции номенклатуры.
47 BarakuzA
 
10.10.11
23:22
на картинке лучше было б видно, но ее нельзя здесь прикрепить
48 Живой Ископаемый
 
10.10.11
23:26
2(47) во все интернете нельзя вставить.. А сюда нельзя ссылку вставить... Я передам веб-мастерам что ты их обозвал криворукими...

2(46) господи, и вместо того, чтобы  присвоить Номенклатура.ЕдиницаХраненияОстатков правильную единицу, владельцем которой бы была Номенклатура.Ссылка, ты все это время пытался поменять Владельца у Номенклатура.ЕдиницаХраненияОстатков на Номенклатура.Ссылка?

ты в своем уме?

у тебя там для миллиарда номенклатур вообще могла быть только одна единица, и своим кодом вты в конечном итоге добивался только того, что эта единица измерения принимала владельцем последнюю номенклатуру из обрабатываемых
49 Живой Ископаемый
 
10.10.11
23:28
http://screencast.com/t/mQcL8j3ZTY06

Вот пример картинки, которую никак в этот форум не вставить... Если конечно нет надежной волшебной палочки
50 BarakuzA
 
10.10.11
23:31
(49), спасибо за картинку - буду знать.
51 BarakuzA
 
10.10.11
23:33
так как всетаки будет правильно в обработке???
52 Живой Ископаемый
 
10.10.11
23:35
правильно будет Присвоить правильную единицу измерения. мы не знаем какая правильная. Нам отсюда никому не видно, и что самое главное всем реально плевать...
53 BarakuzA
 
10.10.11
23:36
правильная та, которая уже установлена в справочнике.только у этой единицы владелец другой.
54 Живой Ископаемый
 
10.10.11
23:38
гы.. ну тогда меняй у нее владельца...
55 Живой Ископаемый
 
10.10.11
23:42
Например так:

           ЕдДляОтчетов=Строка.ЕдиницаДляОтчетов.ПолучитьОбъект();
ЕдДляОтчетов.Владелец=ПравильныйВладелец;
ЕдДляОтчетов.ОбменДанными.Загрузка=Истина;
ЕдДляОтчетов.Записать();
56 BarakuzA
 
10.10.11
23:51
ЕдДляОтчетов=Строка.ЕдиницаХраненияОстатков.ПолучитьОбъект();
           ЕдДляОтчетов.Владелец=Строка.Номенклатура.Ссылка;
           ЕдДляОтчетов.ОбменДанными.Загрузка=Истина;
           ЕдДляОтчетов.Записать();
57 BarakuzA
 
10.10.11
23:59
ЕдДляОтчетов  = Строка.ЕдиницаХраненияОстатков.ПолучитьОбъект();
           ЕдДляОтчетов.Владелец=Строка.Номенклатура.Ссылка;
           ЕдДляОтчетов.ОбменДанными.Загрузка=Истина;
           ЕдДляОтчетов.Записать();
           
           ЕдДляОтчетов2 = Строка.ЕдиницаДляОтчетов.ПолучитьОбъект();
           ЕдДляОтчетов2.Владелец=Строка.Номенклатура.Ссылка;
           Сообщить(Строка.Номенклатура.Ссылка);
           ЕдДляОтчетов2.ОбменДанными.Загрузка=Истина;
           ЕдДляОтчетов2.Записать();
58 BarakuzA
 
11.10.11
00:00
только ничего не меняется
59 BarakuzA
 
11.10.11
00:12
ЕдДляОтчетов  = Строка.Номенклатура.ЕдиницаХраненияОстатков.ПолучитьОбъект();
           ЕдДляОтчетов.Владелец=Строка.Номенклатура.Ссылка;
           ЕдДляОтчетов.ОбменДанными.Загрузка=Истина;
           ЕдДляОтчетов.Записать();
           
           ЕдДляОтчетов2 = Строка.Номенклатура.ЕдиницаДляОтчетов.ПолучитьОбъект();
           ЕдДляОтчетов2.Владелец=Строка.Номенклатура.Ссылка;
           Сообщить(Строка.Номенклатура.Ссылка);
           ЕдДляОтчетов2.ОбменДанными.Загрузка=Истина;
           ЕдДляОтчетов2.Записать();
60 BarakuzA
 
11.10.11
00:17
где ошибка???
61 zak555
 
11.10.11
00:20
(60) в себе ?
62 BarakuzA
 
11.10.11
00:21
как исправить???
63 hhhh
 
11.10.11
00:24
(60) читать не умеешь что ли? Написали же, берещь справочник номенклатуры и для всех номенклатур делаешь (35). Какого хрена ты нам какие-то строки суешь?
64 BarakuzA
 
11.10.11
00:28
исправте полностью процедуру и отстану... я не понимаю как...
65 hhhh
 
11.10.11
00:29
дык, пока нечего исправлять.
66 BarakuzA
 
11.10.11
00:30
Для каждого Строка Из Номенклатура Цикл
   
       Если Строка.Пометка И ЗначениеЗаполнено(Строка.НоваяЕдиницаПоКлассификатору) Тогда
           ЕдДляОтчетов=Строка.ЕдиницаДляОтчетов.ПолучитьОбъект();
           ЕдДляОтчетов.Наименование=Строка.НоваяЕдиницаПоКлассификатору.Наименование;
           ЕдДляОтчетов.ЕдиницаПоКлассификатору=Строка.НоваяЕдиницаПоКлассификатору;
           ЕдДляОтчетов.Записать();
           Строка.ЕдиницаДляОтчетов=ЕдДляОтчетов.Ссылка;
           ЕдХранения=Строка.ЕдиницаХраненияОстатков.ПолучитьОбъект();
           
           Если ЕдХранения<>ЕдДляОтчетов Тогда
               ЕдХранения.Наименование=Строка.НоваяЕдиницаПоКлассификатору.Наименование;
               ЕдХранения.ЕдиницаПоКлассификатору=Строка.НоваяЕдиницаПоКлассификатору;
               ЕдХранения.Записать();
           КонецЕсли;
           Строка.ЕдиницаХраненияОстатков=ЕдХранения.Ссылка;
           Номенклатура_=Строка.Номенклатура.Ссылка.ПолучитьОбъект();
           Номенклатура_.БазоваяЕдиницаИзмерения=Строка.НоваяЕдиницаПоКлассификатору;
           Номенклатура_.записать();
           Строка.ЕдиницаИзмерения=Строка.НоваяЕдиницаПоКлассификатору;
       КонецЕсли;
   
   КонецЦикла;     // Вставить содержимое обработчика.
67 BarakuzA
 
11.10.11
00:35
Я исправил вот так:
   Для каждого Строка Из Номенклатура Цикл
   
       Если Строка.Пометка И ЗначениеЗаполнено(Строка.НоваяЕдиницаПоКлассификатору) Тогда
           ЕдДляОтчетов=Строка.ЕдиницаДляОтчетов.ПолучитьОбъект();
           ЕдДляОтчетов.Наименование=Строка.НоваяЕдиницаПоКлассификатору.Наименование;
           ЕдДляОтчетов.ЕдиницаПоКлассификатору=Строка.НоваяЕдиницаПоКлассификатору;
           ЕдДляОтчетов.Владелец=Строка.Номенклатура.Ссылка;
           ЕдДляОтчетов.ОбменДанными.Загрузка=Истина;
           ЕдДляОтчетов.Записать();
           
           Строка.ЕдиницаДляОтчетов=ЕдДляОтчетов.Ссылка;
           ЕдХранения=Строка.ЕдиницаХраненияОстатков.ПолучитьОбъект();
           Если ЕдХранения<>ЕдДляОтчетов Тогда
               ЕдХранения.Наименование=Строка.НоваяЕдиницаПоКлассификатору.Наименование;
               ЕдХранения.ЕдиницаПоКлассификатору=Строка.НоваяЕдиницаПоКлассификатору;
               ЕдХранения.Владелец=Строка.Номенклатура.Ссылка;
               ЕдХранения.ОбменДанными.Загрузка=Истина;
               ЕдХранения.Записать();
           КонецЕсли;
           Строка.ЕдиницаХраненияОстатков=ЕдХранения.Ссылка;
           Номенклатура_=Строка.Номенклатура.Ссылка.ПолучитьОбъект();
           Номенклатура_.БазоваяЕдиницаИзмерения=Строка.НоваяЕдиницаПоКлассификатору;
           Номенклатура_.ОбменДанными.Загрузка=Истина;
           Номенклатура_.записать();
           Строка.ЕдиницаИзмерения=Строка.НоваяЕдиницаПоКлассификатору;
       КонецЕсли;
   
   КонецЦикла;     // Вставить содержимое обработчика.
68 hhhh
 
11.10.11
00:41
Для каждого Строка Из Номенклатура Цикл
   

       Если Строка.Пометка И ЗначениеЗаполнено(Строка.НоваяЕдиницаПоКлассификатору) Тогда            ЕдДляОтчетов=Строка.ЕдиницаДляОтчетов.ПолучитьОбъект();
           ЕдДляОтчетов.Владелец = Строка.Номенклатура;
           ЕдДляОтчетов.Записать();
           
           Если Строка.ЕдиницаХраненияОстатков<>Строка.ЕдиницаДляОтчетов Тогда
ЕдХранения=Строка.ЕдиницаХраненияОстатков.ПолучитьОбъект();
           
               ЕдХранения.Владелец = Строка.Номенклатура;;
               
               ЕдХранения.Записать();
           КонецЕсли;
           
   
   КонецЦикла;     // Вставить содержимое обработчика
69 BarakuzA
 
11.10.11
00:45
результат не изменился...
70 hhhh
 
11.10.11
00:47
какой результат?
71 BarakuzA
 
11.10.11
00:49
владелец остался прежним, не тем какой должен быть
72 BarakuzA
 
11.10.11
00:56
не могу понять почему не присваивается новый владелец
73 hhhh
 
11.10.11
01:04
значит ты соврал, и у тебя одна и та же единица для разных номенклатур.
74 BarakuzA
 
11.10.11
01:05
я и не врал, я здесь это много раз писал уже.
75 BarakuzA
 
11.10.11
01:12
76 hhhh
 
11.10.11
01:21
(75) ну и. Ведь видишь, что повторяется владелец. Значит, соврал.
77 BarakuzA
 
11.10.11
01:22
помогите мне пожайлуста это исправить...у меня никак не получается
78 BarakuzA
 
11.10.11
01:29
если так делаю, то ед меняется, а ее владелец-нет
           ЕдДляОтчетов=Строка.ЕдиницаДляОтчетов.ПолучитьОбъект();
           ЕдДляОтчетов.Наименование=Строка.НоваяЕдиницаПоКлассификатору.Наименование;
           ЕдДляОтчетов.ЕдиницаПоКлассификатору=Строка.НоваяЕдиницаПоКлассификатору;
           ЕдДляОтчетов.Владелец=Строка.Номенклатура.Ссылка;
           ЕдДляОтчетов.ОбменДанными.Загрузка=Истина;
           ЕдДляОтчетов.Записать();
79 Steel_Wheel
 
11.10.11
01:29
Труден путь самурая, крадущегося в тенях. Терпи, юный падаван )
80 BarakuzA
 
11.10.11
01:31
в чем заковарка???
81 BarakuzA
 
11.10.11
01:33
в том что у реквизита владелец тип значения составной?
82 BarakuzA
 
11.10.11
01:39
подскажите плиззз
83 BarakuzA
 
11.10.11
02:00
Я НАШЕЛ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!