|
Загрузка дублей номенклатуры | ☑ | ||
---|---|---|---|---|
0
falselight
21.03.19
✎
13:06
|
При загрузке номенклатуры, выявил что грузятся дубли.
Каким образом вот этот код может допускать загрузку дублей? Подскажите пожалуйста. // // 2. НАИМЕНОВАНИЕ Если НомерНаименование <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C" + НомерНаименование + ":R" + НомерСтроки_Стр + "C" + НомерНаименование; Наименование = ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст; КонецЕсли; // ИмеющеесяНаименование = Справочники.Номенклатура.НайтиПоНаименованию(Наименование, 1); Если ИмеющеесяНаименование = Справочники.Номенклатура.ПустаяСсылка() Тогда СпрНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); СпрНоменклатура.Наименование = СокрЛП(Наименование); //СпрНоменклатура.НаименованиеПолное = СокрЛП(Наименование); Иначе Сообщить("Номенклатура с наименованием " + СокрЛП(Наименование) + " уже существует!", СтатусСообщения.Информация); Возврат; КонецЕсли; // |
|||
1
falselight
21.03.19
✎
13:31
|
Никто не подскажет?
|
|||
2
Гипервизор
21.03.19
✎
13:34
|
Отладка точно подскажет.
|
|||
3
falselight
21.03.19
✎
13:36
|
Загрузка происходит в процедуре
Процедура ДанныеЛистаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) |
|||
4
kuzyara
21.03.19
✎
13:37
|
СокрЛП перед поиском?
|
|||
5
falselight
21.03.19
✎
13:49
|
(4) наименования в справочнике стоят одинаковые
|
|||
6
Гипервизор
21.03.19
✎
13:53
|
(5) А при чем тут справочник, Наименование из ТабДок же. В ТабДоке тоже одинаковые?
|
|||
7
falselight
21.03.19
✎
14:00
|
Сейчас почему то зависает при открытии файла, и установке курсора на файле, висит и все.
|
|||
8
falselight
21.03.19
✎
14:11
|
Сделал СокрЛП(), но все равно не находит (
// 2. НАИМЕНОВАНИЕ Если НомерНаименование <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C" + НомерНаименование + ":R" + НомерСтроки_Стр + "C" + НомерНаименование; Наименование = СокрЛП(ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст); КонецЕсли; // ИмеющеесяНаименование = Справочники.Номенклатура.НайтиПоНаименованию(Наименование, 1); Если ИмеющеесяНаименование = Справочники.Номенклатура.ПустаяСсылка() Тогда |
|||
9
hhhh
21.03.19
✎
14:12
|
(5) вот тут склеротики какие- то
Наименование = ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст; а надо Наименование = СокрЛП(ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст); |
|||
10
falselight
21.03.19
✎
14:14
|
(9) Я поправил в (8), проверил, дубли грузятся.
Смотрел отладчиком по коду. Не находит элемент (((( А он уже есть!!! |
|||
11
falselight
21.03.19
✎
14:15
|
Что то не понятно ((((( Как быть то!?!
|
|||
12
1Сергей
21.03.19
✎
14:15
|
(10) значит не совпадает Наименование
|
|||
13
sqr4
21.03.19
✎
14:16
|
и какое наименование пропускает?
|
|||
14
falselight
21.03.19
✎
14:17
|
(12) Я смотрю в справочнике, они идентичны!!!!!
(13) Сортирую в справочнике по наименованию, дубли идут один за одним. Номера разные. Например первые, с номером 2 и 38, и так далее. Они в разноброс грузятся. Но если отсортировать по наименованию видно. |
|||
15
falselight
21.03.19
✎
14:18
|
(13) Их много задваивается.
|
|||
16
sqr4
21.03.19
✎
14:18
|
(14) Наименование какое бл*ть пример дай сложно чтоли
|
|||
17
Гипервизор
21.03.19
✎
14:19
|
В чем проблема посмотреть отладчиком пошагово процесс дублирования конкретного наименования, которое дублироваться не должно?
|
|||
18
falselight
21.03.19
✎
14:21
|
Положил наименования в разные файлы. Сравнил файлы, пишет файлы идентичны.
(17) Первое наименование проходит. Создается элемент справочника. Потом смотрю по артикулу, доходил до второго. Так вот эта строка не находит его, и дубль создается ((( ИмеющеесяНаименование = Справочники.Номенклатура.НайтиПоНаименованию(Наименование, 1); Если ИмеющеесяНаименование = Справочники.Номенклатура.ПустаяСсылка() Тогда Может запросом выбирать а не функцией? |
|||
19
frost_x
21.03.19
✎
14:24
|
Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>; Неопределено. Ссылка на найденный элемент справочника. Если не существует ни одного элемента с требуемым наименованием, то будет возвращена пустая ссылка. Если для справочника наименование не задано (длина = 0) и поиск выполняется по полному соответствию, то будет возвращено Неопределено. Т.е. вашем случае указано Точное соответствие и проверка должна быть не "Если ИмеющеесяНаименование = Справочники.Номенклатура.ПустаяСсылка() Тогда" а "Если ИмеющеесяНаименование = Неопределено Тогда" |
|||
20
sqr4
21.03.19
✎
14:28
|
(19) отладчик пустую ссылку возвращает
|
|||
21
falselight
21.03.19
✎
14:29
|
(19) Возвращается пустая ссылка!!!
|
|||
22
sqr4
21.03.19
✎
14:31
|
(19) Если бы было неопределено дублей бы не блыо
|
|||
23
Гипервизор
21.03.19
✎
14:36
|
(18) Так артикул или наименование? Сравнить Наименование в первой строке и во второй. Внимательно. Или даже программно.
|
|||
24
1Сергей
21.03.19
✎
14:37
|
НомерНаименование чему равно?
|
|||
25
falselight
21.03.19
✎
14:43
|
(24) Столбец 4, там наименование номенклатуры
|
|||
26
1Сергей
21.03.19
✎
14:43
|
Выполняется ли условие?
Если НомерНаименование <> 0 Тогда |
|||
27
falselight
21.03.19
✎
14:44
|
(23) Там артикул отдельно и он же есть в наименовании
Сравнил же говорю в разные файлы поместил и сравнил, пишет файлы идентичны. |
|||
28
falselight
21.03.19
✎
14:44
|
(26) Да, дам 4 в НомерНоменклатуры, 4-й столбец
|
|||
29
falselight
21.03.19
✎
14:48
|
(22) Оно не будет равно неопределено
|
|||
30
skafandr
21.03.19
✎
14:54
|
(29) а не лениво столько писать здесь чем один раз написать как люди советуют и тупо проверить?
|
|||
31
skafandr
21.03.19
✎
14:57
|
или напиши
Если ИмеющеесяНаименование.Пустая() Тогда |
|||
32
falselight
21.03.19
✎
15:06
|
(31) Видимо какие то заморочки что загрузка происходит вот в этой функции
ДанныеЛистаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) возможно. Я тестирую. Ищу причину. |
|||
33
skafandr
21.03.19
✎
15:07
|
(32)какая разница из какой функции ищет ... справочник один на всех
|
|||
34
falselight
21.03.19
✎
15:30
|
всего строк нужно обработать 43, но почему то после 30, ДанныеСтроки.НомерСтроки становится снова 4
То есть та строка с которой началось считывание! Это пока не понятно! |
|||
35
Злопчинский
21.03.19
✎
15:57
|
(34) да хрен тебя знает почему. ты же секретный физик. код с циклом привести страшно, посадят...
|
|||
36
falselight
21.03.19
✎
16:13
|
(35)
Процедура ДанныеЛистаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) // Если ФлагЗагрузки = Ложь Тогда Возврат; КонецЕсли; // Если ОбрЗавершена = 1 Тогда Возврат; КонецЕсли; // Если НомерПервойСтроки > ДанныеСтроки.НомерСтроки Тогда Возврат; КонецЕсли; // // - Загружаемые данные - // 1. Артикул // 2. Наименование // 3. Цена // 4. Картинка // 5. Проба // 6. Ед. Изм. // 7. Группа номенклатуры // 8. Ставка НДС // 9. Тип изделия // 10. ПолноеНаименование // 11. Размер // ТабДок = Новый ТабличныйДокумент; ТабДок.Прочитать(ЭтотОбъект.ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение); Если ЭлементыФормы.ДанныеЛиста.Значение.Количество() > КолВоСтрокТЗ Тогда // // 2. НАИМЕНОВАНИЕ Если НомерНаименование <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C" + НомерНаименование + ":R" + НомерСтроки_Стр + "C" + НомерНаименование; Наименование = СокрЛП(ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст); КонецЕсли; // ИмеющеесяНаименование = Справочники.Номенклатура.НайтиПоНаименованию(Наименование, 1); ИмеющеесяНаименование2 = НайтиНоменклатуру(Наименование); Если ИмеющеесяНаименование = Справочники.Номенклатура.ПустаяСсылка() Тогда СпрНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); СпрНоменклатура.Наименование = СокрЛП(Наименование); //СпрНоменклатура.НаименованиеПолное = СокрЛП(Наименование); Иначе Сообщить("Номенклатура с наименованием " + СокрЛП(Наименование) + " уже существует!", СтатусСообщения.Информация); Возврат; КонецЕсли; // // 1. АРТИКУЛ Если НомерАртикул <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиАртикула = "R" + НомерСтроки_Стр + "C" + НомерАртикул + ":R" + НомерСтроки_Стр + "C" + НомерАртикул; Артикул = ТабДок.ПолучитьОбласть(АдресОбластиАртикула).ТекущаяОбласть.Текст; СпрНоменклатура.Артикул = СокрЛП(Артикул); КонецЕсли; // // 3. ЦЕНА Если НомерЦены <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиЦены = "R" + НомерСтроки_Стр + "C" + НомерЦены + ":R" + НомерСтроки_Стр + "C" + НомерЦены; Цена = ТабДок.ПолучитьОбласть(АдресОбластиЦены).ТекущаяОбласть.Текст; КонецЕсли; // // 4. КАРТИНКА Если НомерКартинка <> 0 Тогда НужныеДанныеКартинки = "<Pic>"; НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиРисунка = "R" + НомерСтроки_Стр + "C" + НомерКартинка + ":R" + НомерСтроки_Стр + "C" + НомерКартинка; Для Каждого РисунокТД ИЗ ТабДок.ПолучитьОбласть(АдресОбластиРисунка).Рисунки Цикл НужныеДанныеКартинки = РисунокТД.Картинка; // ДанныеЛиста[ДанныеСтроки.НомерСтроки-1][3] = НужныеДанныеКартинки; // ОформлениеСтроки.Ячейки.К3.Картинка = НужныеДанныеКартинки; // ---- //ХранилищеДополнительнойИнформацииСервер.ПолучитьСетевойКаталог(СетевойКаталог); //ВыбранноеИзображение = Новый Картинка(НужныеДанныеКартинки, Ложь); // НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент(); НовыйОбъект.Наименование = Наименование; НовыйОбъект.Хранилище = Новый ХранилищеЗначения(НужныеДанныеКартинки, Новый СжатиеДанных); НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение; НовыйОбъект.Объект = СпрНоменклатура.Ссылка; //НовыйОбъект.ИмяФайла = ПроцедурыОбменаДанными.ПолучитьИмяФайлаИзПолногоПути(ДиалогОткрытияФайла.ПолноеИмяФайла); //Если НЕ ЗначениеЗаполнено(СетевойКаталог) Тогда //НовыйОбъект.Хранилище = Новый ХранилищеЗначения(НужныеДанныеКартинки, Новый СжатиеДанных); //КонецЕсли; НовыйОбъект.Записать(); СпрНоменклатура.ОсновноеИзображение = НовыйОбъект.Ссылка; // ---- ОформлениеСтроки.Ячейки.К3.АвтовысотаЯчейки = Истина; ОформлениеСтроки.Ячейки.К3.ВысотаЯчейки = 10; ОформлениеСтроки.Ячейки.К3.ОтображатьКартинку = Истина; // Прервать; КонецЦикла; КонецЕсли; // // 5. ПРОБА Если НомерПробы <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C" + НомерПробы + ":R" + НомерСтроки_Стр + "C" + НомерПробы; Проба = СокрЛП(ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст); НайденнаяПроба = Справочники.Пробы.НайтиПоНаименованию(Проба, 1); Если НайденнаяПроба <> Справочники.Пробы.ПустаяСсылка() Тогда СпрНоменклатура.Проба = НайденнаяПроба; Иначе Сообщить("Проба " + Проба + " не найдена в справочнике пробы!", СтатусСообщения.Важное); КонецЕсли; КонецЕсли; // 6. ЕД. ИЗМ. //НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); //АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C4:R" + НомерСтроки_Стр + "C" + 4; //Наименование = ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст; //СпрНоменклатура.Наименование = Наименование; // БАЗОВАЯ ЕДИНИЦА ИЗМЕРЕНИЯ ПО УМОЛЧАНИЮ Если НомерЕдИзм <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C" + НомерЕдИзм + ":R" + НомерСтроки_Стр + "C" + НомерЕдИзм; ЕдИзм = СокрЛП(ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст); НайденнаяЕдИзм = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЕдИзм, 1); Если НайденнаяЕдИзм <> Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка() Тогда СпрНоменклатура.БазоваяЕдиницаИзмерения = НайденнаяЕдИзм; Иначе Сообщить("Единица измерения " + ЕдИзм + " не найдена в справочнике классификатор единиц измерения!", СтатусСообщения.Важное); СпрНоменклатура.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт"); Сообщить("Установлена единица измерения по умолчанию " + ЕдИзм + " шт!", СтатусСообщения.Информация); КонецЕсли; Иначе СпрНоменклатура.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт"); Сообщить("Установлена единица измерения по умолчанию " + ЕдИзм + " шт", СтатусСообщения.Информация); КонецЕсли; // // 7. ГРУППА НОМЕНКЛАТУРЫ Если НомерГруппыНоменклатуры <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C" + НомерГруппыНоменклатуры + ":R" + НомерСтроки_Стр + "C" + НомерГруппыНоменклатуры; ГруппаНоменклатуры = СокрЛП(ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст); НайденнаяГруппаНоменклатуры = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(ГруппаНоменклатуры, 1); Если НайденнаяГруппаНоменклатуры <> Справочники.НоменклатурныеГруппы.ПустаяСсылка() Тогда СпрНоменклатура.НоменклатурнаяГруппа = НайденнаяГруппаНоменклатуры; Иначе Сообщить("Группа номенклатуры " + ГруппаНоменклатуры + " не найдена в справочнике номенклатурные группы!", СтатусСообщения.Важное); КонецЕсли; КонецЕсли; // 8. СТАВКА НДС Если НомерСтавкиНДС <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C" + НомерСтавкиНДС + ":R" + НомерСтроки_Стр + "C" + НомерСтавкиНДС; СтавкаНДС = СокрЛП(ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст); Если СтавкаНДС = "Без НДС" Тогда СпрНоменклатура.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС; ИначеЕсли СтавкаНДС = "НДС 18" Тогда СпрНоменклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18; ИначеЕсли СтавкаНДС = "НДС 10" Тогда СпрНоменклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10; КонецЕсли; КонецЕсли; // 9. ТИП ИЗДЕЛИЯ Если НомерТипаИзделия <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C" + НомерТипаИзделия + ":R" + НомерСтроки_Стр + "C" + НомерТипаИзделия; ТипИзделия = СокрЛП(ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст); НайденныйТипИзделия = Справочники.ТипыИзделий.НайтиПоНаименованию(ТипИзделия, 1); Если НайденныйТипИзделия <> Справочники.ТипыИзделий.ПустаяСсылка() Тогда СпрНоменклатура.ТипИзделия = НайденныйТипИзделия; Иначе Сообщить("Тип изделия " + ТипИзделия + " не найден в справочнике типы изделий!", СтатусСообщения.Важное); КонецЕсли; КонецЕсли; // // 10. ПОЛНОЕ НАИМЕНОВАНИЕ Если НомерПолноеНаименование <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C" + НомерПолноеНаименование + ":R" + НомерСтроки_Стр + "C" + НомерПолноеНаименование; ПолноеНаименование = СокрЛП(ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст); СпрНоменклатура.НаименованиеПолное = СокрЛП(ПолноеНаименование); КонецЕсли; // // 11. РАЗМЕР Если НомерРазмер <> 0 Тогда НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиНаименования = "R" + НомерСтроки_Стр + "C" + НомерРазмер + ":R" + НомерСтроки_Стр + "C" + НомерРазмер; Размер = ТабДок.ПолучитьОбласть(АдресОбластиНаименования).ТекущаяОбласть.Текст; СпрНоменклатура.Размер1 = ЧИСЛО(СокрЛП(Размер)); КонецЕсли; // ГруппаЭксель = Справочники.Номенклатура.НайтиПоНаименованию("EXCEL2", 1); Если ГруппаЭксель <> Справочники.Номенклатура.ПустаяСсылка() Тогда СпрНоменклатура.Родитель = ГруппаЭксель; Иначе ГруппаЭксель = Справочники.Номенклатура.СоздатьГруппу(); ГруппаЭксель.Наименование = "EXCEL2"; ГруппаЭксель.Записать(); СпрНоменклатура.Родитель = ГруппаЭксель.Ссылка; Сообщить("Созданна группа " + "EXCEL2", СтатусСообщения.Информация); КонецЕсли; СпрНоменклатура.Записать(); Сообщить(СТРОКА(ДобавленнаяСтрока) + ". Загружен элемент номенклатуры " + СпрНоменклатура.Код + ", "+ СпрНоменклатура.Наименование); КолВоСтрокТз = КолВоСтрокТЗ + 1; ДобавленнаяСтрока = ДобавленнаяСтрока + 1; Иначе Сообщить("Загрузка позиций номенклатуры с выбранного листа excel произведена в каталог <<EXCEL2>>", СтатусСообщения.Информация); ОбрЗавершена = 1; КонецЕсли; // ТабДок = ""; КонецПроцедуры // |
|||
37
sqr4
21.03.19
✎
16:17
|
ДанныеЛистаПриВыводеСтроки а сколько строк в данныеЛИста?
|
|||
38
Гипервизор
21.03.19
✎
16:19
|
(36) Это к делу не относится, конечно, но забыли ставку НДС 20%.
|
|||
39
sqr4
21.03.19
✎
16:19
|
ХОтя по сути как это влияет.
|
|||
40
СтарПом
21.03.19
✎
16:24
|
НайтиПоНаименованию(Наименование, 1)?
не НайтиПоНаименованию(Наименование, Истина)? |
|||
41
skafandr
21.03.19
✎
16:24
|
(36)Вы вообще читаете что Вам пишут?
Если в (0) написано про дубли в справочнике Номенклатуры, то они могут возникать ровно в одном месте где создается элемент напишите вместо Если ИмеющеесяНаименование = Справочники.Номенклатура.ПустаяСсылка() Тогда строчку Если ИмеющеесяНаименование.Пустая() Тогда и результат сообщи |
|||
42
falselight
21.03.19
✎
16:26
|
(40) (41) Ок, сейчас попробую.
Пока вижу такую коллизию. Загрузить нужно 43 строки. Но после загруженной 28 строки, данные строки становятся снова 4. Это от куда начинается загрузка. Это как понять? |
|||
43
sqr4
21.03.19
✎
16:27
|
(40) я пробовал одинаково у меня (41) и тут тоже одинаково, но ТС проверь
|
|||
44
falselight
21.03.19
✎
16:28
|
(42+) То есть проблема такая. В тз для загрузке куда прочитаны данные дублей нет.
Но после 28 строки, начинается снова читать данные с 4-й строки, от куда пошла загрузка. И они двоятся, хотя уже загружены ((((( Почему так отрабатывает процедура не понятно! |
|||
45
falselight
21.03.19
✎
16:37
|
Проблема в том что почему то в процедуре ДанныеЛистаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ДанныеСтроки.НомерСтроки, прыгает хаотично, и сваливается на начало в процессе, и то что читается снова идет дублями это не понятно совсем ( |
|||
46
sqr4
21.03.19
✎
16:38
|
(45) я всегда думал что номенклатура создается по кнопке, а не при выводе строки)
|
|||
47
falselight
21.03.19
✎
16:39
|
Что получается в список заносить обработанные строки?
И в нем искать, если уже были пропускать. Но почему так прыгает ДанныеСтроки.НомерСтроки? |
|||
48
falselight
21.03.19
✎
16:39
|
(46) Там нужно грузить картинки с листа, по этому сделано при выводе строки.
Так как такой метод. |
|||
49
falselight
21.03.19
✎
16:40
|
(40) 1 это же и есть Истина
|
|||
50
falselight
21.03.19
✎
16:41
|
Может нужно как то свойства табличного поля поправить?
Из за этого прыгают может данные строки????? |
|||
51
sqr4
21.03.19
✎
16:49
|
ДанныеЛиста - это что?
|
|||
52
sqr4
21.03.19
✎
16:50
|
(48) с какого листа?
|
|||
53
falselight
21.03.19
✎
16:53
|
||||
54
falselight
21.03.19
✎
16:54
|
(52) Загрузка идет с листов эксель файла.
Там есть картинки, я делал их загрузку в номенклатуру. |
|||
55
sqr4
21.03.19
✎
16:55
|
а почему циклом не перебрать значения ТЧ?
|
|||
56
falselight
21.03.19
✎
16:58
|
(55) Наверное из за картинки, -
// 4. КАРТИНКА Если НомерКартинка <> 0 Тогда НужныеДанныеКартинки = "<Pic>"; НомерСтроки_Стр = Формат(ДанныеСтроки.НомерСтроки, "ЧН=0; ЧГ=0"); АдресОбластиРисунка = "R" + НомерСтроки_Стр + "C" + НомерКартинка + ":R" + НомерСтроки_Стр + "C" + НомерКартинка; Для Каждого РисунокТД ИЗ ТабДок.ПолучитьОбласть(АдресОбластиРисунка).Рисунки Цикл НужныеДанныеКартинки = РисунокТД.Картинка; // ДанныеЛиста[ДанныеСтроки.НомерСтроки-1][3] = НужныеДанныеКартинки; // ОформлениеСтроки.Ячейки.К3.Картинка = НужныеДанныеКартинки; // ---- //ХранилищеДополнительнойИнформацииСервер.ПолучитьСетевойКаталог(СетевойКаталог); //ВыбранноеИзображение = Новый Картинка(НужныеДанныеКартинки, Ложь); // НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент(); НовыйОбъект.Наименование = Наименование; НовыйОбъект.Хранилище = Новый ХранилищеЗначения(НужныеДанныеКартинки, Новый СжатиеДанных); НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение; НовыйОбъект.Объект = СпрНоменклатура.Ссылка; //НовыйОбъект.ИмяФайла = ПроцедурыОбменаДанными.ПолучитьИмяФайлаИзПолногоПути(ДиалогОткрытияФайла.ПолноеИмяФайла); //Если НЕ ЗначениеЗаполнено(СетевойКаталог) Тогда //НовыйОбъект.Хранилище = Новый ХранилищеЗначения(НужныеДанныеКартинки, Новый СжатиеДанных); //КонецЕсли; НовыйОбъект.Записать(); СпрНоменклатура.ОсновноеИзображение = НовыйОбъект.Ссылка; // ---- ОформлениеСтроки.Ячейки.К3.АвтовысотаЯчейки = Истина; ОформлениеСтроки.Ячейки.К3.ВысотаЯчейки = 10; ОформлениеСтроки.Ячейки.К3.ОтображатьКартинку = Истина; // Прервать; КонецЦикла; КонецЕсли; // |
|||
57
falselight
21.03.19
✎
17:00
|
Свойства табличного поля нужно править что бы не скакало????
ДанныеСтроки? |
|||
58
falselight
21.03.19
✎
17:12
|
Проблема следующая, данные строки при обработке, дойди до номера 40 ДанныеСтроки.НомерСтроки = 40
становятся ДанныеСтроки.Номер = 1 ПОЧЕМУ? Они должны идти до 46 |
|||
59
hhhh
21.03.19
✎
17:13
|
(57) ПриВыводеСтроки нельзя делать, потому что она запускается при каждом перечитывании строки. То есть строка 4 может у вас 500 раз выводиться. А может и 600 раз. Ну или 700. Строка 5 тоже 600 раз.
|
|||
60
falselight
21.03.19
✎
17:19
|
(59) Нужно было считать картинку!!!!!
Я это обрабатываю!!!!! Если ОбрЗавершена = 1 Тогда Возврат; КонецЕсли; // Я хотел обработать это табличное поле. И поставить флаг ОбрЗавершена = 1. Что бы более не выполнялся код. Так же можно? Почему ПриВыводеСтроки ДанныеСтроки.НомерСтроки, после 40 перелетают на 4, а не на 41? |
|||
61
falselight
21.03.19
✎
17:19
|
И почему не находятся уже созданные элементы справочника номенклатура, тоже не понятно!!!!!
|
|||
62
falselight
21.03.19
✎
17:28
|
Вот что я засек!!!!!
После 40 строки, отрабатывает вот эта процедура. Обновляя список. И строка снова переносится в начало. Но почему она отрабатывает? // Процедура ЗагрузитьВ1С(Элемент) ФлагЗагрузки = Истина; // ЭлементыФормы.ДанныеЛиста.ОбновитьСтроки(); // КонецПроцедуры // |
|||
63
falselight
21.03.19
✎
17:29
|
(62+) Это же процедура нажатия на кнопку и загрузки табличного документа.
Почему она запустилась второй раз? Она же запускается при нажатии на кнопку??!!!!! |
|||
64
sqr4
21.03.19
✎
17:31
|
(62) это ты в оформление строк сохраняешь картинку, а потом грузишь в номенклатуру?
|
|||
65
falselight
21.03.19
✎
18:01
|
(64) видимо.
|
|||
66
falselight
21.03.19
✎
18:15
|
Почему после 40 строки вылетает в (62) Где это задано?
|
|||
67
falselight
21.03.19
✎
18:19
|
После 40-й строки, через точку останова установленной в этой процедуре (62)
вылетает сразу на строку ЭлементыФормы.ДанныеЛиста.ОбновитьСтроки(); Как это происходит? |
|||
68
hhhh
21.03.19
✎
19:12
|
(67) наверно на экране 40 строк помещаются. Перечитывает экран. Попробуй изменить разрешение экрана.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |