Ошибка при вызове метода контекста найтистроки

Приобрел у Вас обработку для VirtueMart 2.0.x. Настроил как в прямом подключении к БД, так и при обычном подключении к сайту возникает одна и таже ошибка:...

Страница 1 из 2

  1. Приобрел у Вас обработку для VirtueMart 2.0.x.
    Настроил как в прямом подключении к БД, так и при обычном подключении к сайту возникает одна и таже ошибка:

    {Обработка.VirtueMart_v3cr.МодульОбъекта(349)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныйТовар = ТоварыНаСайте.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки.

    Подскажите как можно исправить эту ошибку?

  2. Здравствуйте, все очень просто, она возникает когда —
    Неправильно вбит префикс базы данных

    index.png

  3. Здравствуйте, у меня возникла точно такая же проблема — при выгрузке товара на сайт появляется эта же ошибка, 10 раз проверила все настройки, все правильно, и префикс таблицы вбит правильно…
    Как решить эту проблему?

  4. Добрый день
    Тоже недавно получил модуль и никак не могу побороть эту ошибку

    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(687)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныаяСсылкаГруппа = ТаблицаКатегорий.НайтиСтроки(Отборссылки);
    по причине:
    Неверное имя колонки

  5. У меня эта проблема решилась путем выключения реквизита прямой доступ к базе данных mysql, с самыми простыми настройками

  6. У меня эта ошибка выглядит так:
    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(1936)}: Ошибка при вызове метода контекста (НайтиСтроки)
    Найденный = ТаблицаЗначенийСвойств.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки

    И никакие настройки модуля не помогают от нее избавится…

  7. Ошибка получается в этом куске кода:

    Попытка   
                           
                            ЗначениеЧисло = Число(СвойствоНайденное.Значение);
                            idФильтра = 0;
                           
                        Исключение
                           
                            ЗначениеТекст = СокрЛП(СвойствоНайденное.Значение);
                            ЗначениеЧисло = 0;
                            //находим айди товара по артикулу
                            Отбор = Новый Структура();
                            Отбор.Вставить("value",СокрЛП(СвойствоНайденное.Значение));
                            Найденный = ТаблицаЗначенийСвойств.НайтиСтроки(Отбор);
                            Если Найденный.Количество()>0 Тогда
                                idФильтра = Найденный[0].id;
                            КонецЕсли;
     
                        КонецПопытки;                         
       
                        НоваяСатрока = ТипыТовараДляВыгрузкиMyExt.Добавить();
                        НоваяСатрока.DATA = "('"+ Формат(idТовара, "ЧГ=0") + "','" + Формат(idДанных, "ЧГ=0") + "','" + СокрЛП(idФильтра) + "','"  + Формат(ЗначениеЧисло, "ЧГ=0") + "')";       
                                                               
                    КонецЦикла;
     
                Иначе
                   
    

    Вот в этой строке: Отбор.Вставить(«value»,СокрЛП(СвойствоНайденное.Значение));

  8. тоже не работает

    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(517)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныаяСсылкаГруппа = ТаблицаКатегорий.НайтиСтроки(Отборссылки);
    по причине:
    Неверное имя колонки

    причем у меня в настройках сайта префикс для таблиц VirtueMart (1.1.5) все же стоит — vm
    а при выборе в окне своей базы автоматом ставится — jos_vm
    но не работает не так не так.

  9. Префикс можно узнать использую эту инструкцию, раздел «настройка»

  10. тоже не работает!

    {ВнешняяОбработка.JoomShopping_v3cr.МодульОбъекта(148)}: Ошибка при вызове метода контекста (НайтиСтроки)
    Найденный = ЕдиницНаСайте.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки

    в настройках префикс указана верно — автоматически получаемый из базы совпадает с тем, который я вбиваю руками.

  11. при этом кнопка «Очистить таблицы JoomShopping» работает нормально — товары с сайта удалились.

  12. точно такая же ошибка при работе через tunnel.php!

  13. Читайте инструкцию в ней описана ситуация, когда не работает подключение через туннель, и написано, что можно сделать — http://help.1c-mart.ru/

  14. инструкцию читал — все настройки для tunnel.php сделаны. выставлены права доступа, внесена строчка в .htaccess.
    по-прежнему не работает.

    и через прямое соединение не работает. подключение есть, а выгрузки товаров нет.

    что делать-то?

  15. все локально установлено — 1с, апач, пхп, мускл.

  16. Точно такая же история
    {Внешняя Обработка.OpenCart_v4cr.Форма.Форма.Форма(2775)}: Ошибка при вызове метода контекста (НайтиСтроки) НайденныйBrend = БрендыНаСайте.НайтиСтроки(ОтборBrend); по причине: Неверное имя колонки

    После этого обработка пишет «ошибка соединения» и так минут 5-10

    В базе данных на сайте удалил всех производителей, выгружаю заново, но производители выгружаются, а товары нет/ И снова в 1с такая же ошибка

    В чем может быть дело?

  17. Нет, opencart 2x. Подключение через тунель Ввша команда настраивала


    Administrator нравится это.

Страница 1 из 2

Поделиться этой страницей


Форум "Автоматизация электронной коммерции"

   pasha_d

11.10.10 — 11:29

Обработка выдает ошибку…

Выборка = ЭлементыФормы.Отраж.Значение;

   
   Док = Выборка.ПолучитьОбъект();

   

   
   Счет = ПланыСчетов.Хозрасчетный.НайтиПоКоду(«000»);

   ПараметрыОтбора = Новый Структура;

   ПараметрыОтбора.Вставить(«СчетУчета», Счет);

   МассивСтрок = Док.ТаблицаРегистровНакопления.НайтиСтроки(ПараметрыОтбора);

   
   
   Для Каждого ЗаписьТЧ Из МассивСтрок Цикл

       Док.ТаблицаРегистровНакопления.Удалить(ЗаписьТЧ);

   КонецЦикла;

       
   Док.Записать();

{Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (НайтиСтроки)

   МассивСтрок = Док.ТаблицаРегистровНакопления.НайтиСтроки(ПараметрыОтбора);

по причине:

Неверное имя колонки

Подскажите, если кто сталкивался…

   DrShad

1 — 11.10.10 — 11:31

так колонка то и неверное имя имеет

   Mitriy

2 — 11.10.10 — 11:32

подсказываю: Неверное имя колонки

   DrShad

3 — 11.10.10 — 11:32

+(1) и телепатов тут по понедельникам нету обычно

   DrShad

4 — 11.10.10 — 11:33

обработку в топку
что ты собрался учитывать на вспомогательном счете?

   DrShad

5 — 11.10.10 — 11:34

давно с клюшек перешел? учи матчасть

   pasha_d

6 — 11.10.10 — 11:36

блин, надо удалить строки с счетом учета «000» из определенного документа «корректировка записей регистров»…

   DrShad

7 — 11.10.10 — 11:37

(6) какая конфа, какой регистр корректируешь? и обычно колонка имеет другое имя

   DrShad

8 — 11.10.10 — 11:38

+(7) что у вас все выпытывать надо

   pasha_d

9 — 11.10.10 — 11:38

8.2 УПП, регистр — НезавершенноеПроизводствоБухгалтерскийУчет

   hhhh

10 — 11.10.10 — 11:43

(9) ТаблицаРегистровНакопления — красивое слово. Сам придумал такое? Ведь знаешь же еще из детского сада, что у этого документа никаких табличных частей нет. Надо править прямо в регистрах.

   DrShad

11 — 11.10.10 — 11:45

(10) есть у него табличная часть, но там записываются имена регистров которые корректируются

   ПульсЪ

12 — 11.10.10 — 11:45

качни книгу 1C_Predpriyatie_8.1._Prostye_primery_razrabotki

там много примеров найдешь, оч полезно новичку

   DrShad

13 — 11.10.10 — 11:46

(9) как верно подметил (10) рано тебе еще такие вещи делать

   DrShad

14 — 11.10.10 — 11:48

(12) в топку книгу, хоть и не читал, но зуб даю что там нет примера как править НаборыЗаписей

   ПульсЪ

15 — 11.10.10 — 11:50

(14) невтопку) читтать нуна,что бы шарить боле менее, там не то что б книга, там сборник примеров

   ПульсЪ

16 — 11.10.10 — 11:51

(14) кстате, гони ЗУБ ) там есть пару примеров)

   Mitriy

17 — 11.10.10 — 11:52

(14) правильно… на фиг что-то читать… не царское это дело…

   ПульсЪ

18 — 11.10.10 — 11:53

(17) на фиг читать — это когда все знаешь )

   DrShad

19 — 11.10.10 — 11:55

(17) пример в студию

   DrShad

20 — 11.10.10 — 11:56

+(19) из книги естественно

   Suzuki

21 — 11.10.10 — 11:59

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Регистратор.Установить(ВыбранныйРегистратор);

НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл

   // Чтение и сообщение данных полей записи.
   Сообщить(Строка(Запись.Период) + » » + Строка(Запись.ТипЦен) +» «+ Строка(Запись.Номенклатура) + » » + Строка(Запись.Цена) + » » + Строка(Запись.ПроцентСкидкиНаценки));

   // Изменение данных полей записи.
   Запись.ПроцентСкидкиНаценки = 0;
КонецЦикла;

НаборЗаписей.Записать();

   Mitriy

22 — 11.10.10 — 11:59

(19) угу… щас, штаны подтяну…

   Aprobator

23 — 11.10.10 — 12:01

(0) править надо не табличную часть, а движения самого регистра непосредственно.
Хотя, судя по вашему коду, зовите спеца, а то дров будет наломано по самое нехочу.

   ПульсЪ

24 — 11.10.10 — 12:02

(20) лень переписывать, копипаст не канает там, смотри сам )

   DrShad

25 — 11.10.10 — 12:02

(21) тут нет удаления записи

   Suzuki

26 — 11.10.10 — 12:04

Запрос = Новый Запрос;
Запрос.Текст = »
|    ВЫБРАТЬ
|    ЦеныНоменклатурыКонтрагентов.Регистратор
|ИЗ
|    РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов»;

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

НаборЗаписей = РегистрыСведений.ЦеныНоменклатурыКонтрагентов.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
   НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
   НаборЗаписей.Записать();
КонецЦикла;

   DrShad

27 — 11.10.10 — 12:04

(23) +100

   ПульсЪ

28 — 11.10.10 — 12:05

кстате, код (26)как пример в книге

   ПульсЪ

29 — 11.10.10 — 12:05

тока там проще чуть

   DrShad

30 — 11.10.10 — 12:05

(26) это ты автору сейчас дал чтоб поприкалываться? он же ща грохнет все записи

   DrShad

31 — 11.10.10 — 12:09

кстати а где ТС?

   Aprobator

32 — 11.10.10 — 12:11

(31) ушел на обед.

   Suzuki

33 — 11.10.10 — 12:13

(30) это для ознакомления DrShad, куда ехать за зубом?

   DrShad

34 — 11.10.10 — 12:14

(33) выборочное удалени записей там есть?

   DrShad

35 — 11.10.10 — 12:14

(33) за зубом ехай в Неризиновск

   ПульсЪ

36 — 11.10.10 — 12:17

(35) не не, зуб обещал, давай гони делай фотку, закидыва в инет и ссылку в студию)

   ПульсЪ

37 — 11.10.10 — 12:17

а тут посмотрим какого он цвета)

   DrShad

38 — 11.10.10 — 12:17

(36) пример выборочного удаления записей

   DrShad

39 — 11.10.10 — 12:18

+(38) а ведь он простой

   Suzuki

40 — 11.10.10 — 12:19

(34) есть, читай, пастить влом

   Aprobator

41 — 11.10.10 — 12:20

(38) не отмазывайся, на пример правки наборов записей примеры и (26) и (21) катят. Так что, гони зуб ).

   DrShad

42 — 11.10.10 — 12:22

(41) хрен с вами приезжайте в Нерезиновск состыкуемся для передачи оного

   DrShad

43 — 11.10.10 — 12:23

+(42) тока один на всех (мне как раз давно пора левую верхнюю восьмерку удалить) :)

   ПульсЪ

44 — 11.10.10 — 12:25

(43) выдирай пасатижами, кидайй в конверт и правь в Спб =))

   DrShad

45 — 11.10.10 — 12:29

8-ку пасатижами? это ж как надо рот раскрыть?

  

DrShad

54 — 11.10.10 — 12:41

походу ТС пошел выпить яду

Обработка выдает ошибку… {Форма.Форма.Форма}: Ошибка при вызове метода контекста (НайтиСтроки) по причине: Неверное имя колонки Подскажите, если кто сталкивался…

так колонка то и неверное имя имеет

подсказываю: Неверное имя колонки

+ и телепатов тут по понедельникам нету обычно

обработку в топку что ты собрался учитывать на вспомогательном счете?

давно с клюшек перешел? учи матчасть

блин, надо удалить строки с счетом учета «000» из определенного документа «корректировка записей регистров»…

какая конфа, какой регистр корректируешь? и обычно колонка имеет другое имя

+ что у вас все выпытывать надо

8.2 УПП, регистр — НезавершенноеПроизводствоБухгалтерскийУчет

ТаблицаРегистровНакопления — красивое слово. Сам придумал такое? Ведь знаешь же еще из детского сада, что у этого документа никаких табличных частей нет. Надо править прямо в регистрах.

есть у него табличная часть, но там записываются имена регистров которые корректируются

качни книгу 1C_Predpriyatie_8.1._Prostye_primery_razrabotki там много примеров найдешь, оч полезно новичку

как верно подметил рано тебе еще такие вещи делать

в топку книгу, хоть и не читал, но зуб даю что там нет примера как править НаборыЗаписей

невтопку) читтать нуна,что бы шарить боле менее, там не то что б книга, там сборник примеров

кстате, гони ЗУБ ) там есть пару примеров)

правильно… на фиг что-то читать… не царское это дело…

на фиг читать — это когда все знаешь )

угу… щас, штаны подтяну…

править надо не табличную часть, а движения самого регистра непосредственно. Хотя, судя по вашему коду, зовите спеца, а то дров будет наломано по самое нехочу.

лень переписывать, копипаст не канает там, смотри сам )

кстате, код как пример в книге

это ты автору сейчас дал чтоб поприкалываться? он же ща грохнет все записи

это для ознакомления , куда ехать за зубом?

выборочное удалени записей там есть?

за зубом ехай в Неризиновск

не не, зуб обещал, давай гони делай фотку, закидыва в инет и ссылку в студию)

а тут посмотрим какого он цвета)

пример выборочного удаления записей

есть, читай, пастить влом

не отмазывайся, на пример правки наборов записей примеры и и катят. Так что, гони зуб ).

хрен с вами приезжайте в Нерезиновск состыкуемся для передачи оного

+ тока один на всех (мне как раз давно пора левую верхнюю восьмерку удалить) :)

выдирай пасатижами, кидайй в конверт и правь в Спб =))

8-ку пасатижами? это ж как надо рот раскрыть?

походу ТС пошел выпить яду

Тэги:

Комментарии доступны только авторизированным пользователям

  1. Всем доброго времени суток… Пишу впервые, поэтому прошу не судить строго за возможный флуд и некомпетентность с моей стороны. При работе с внешним соединением возникла следующая проблема:

    Запрос = COMсоединение.NewObject(«Запрос»);
    Запрос.Text = …………..;
    Результат = Запрос.Выполнить().Выгрузить();

    Необходимо выбрать из переменной «Результат» строки по определенному отбору, аналогично методу НайтиСтроки(ПараметрОтбора). Как это реализовать ???

    P.S. Сам метод НайтиСтроки() не работает, я так думаю потому, что «Результат» имеет тип «СОМ объект».


  2. vartanet

    Offline

    vartanet
    Опытный в 1С
    Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.701
    Симпатии:
    15
    Баллы:
    29

    вроде должен метод отработать.. покажите код полностью.

  3. Текст Запроса довольно большой, поэтому приведу только основные выбираемые данные:

    Функция СформироватьЗапрос(Источник,Параметры)
    Запрос = Источник.Соединение.NewObject("Запрос");
    Запрос.УстановитьПараметр("ДатаНачало",ДатаНачало);
    Запрос.УстановитьПараметр("ДатаКонец" ,КонецДня(ДатаКонец));
    Запрос.УстановитьПараметр("Организация",Источник.Организация);
    
    Запрос.Текст = ПолучитьТекстЗапроса(Источник,Параметры);
    
    Возврат Запрос.Выполнить().Выгрузить();
    
    КонецФункции
    
    Функция ПолучитьТекстЗапроса(Источник,Параметры)
    ТекстЗапроса = "ВЫБРАТЬ
    |	ВложенныйЗапрос.РегистраторСсылка,
    |	ВложенныйЗапрос.ДокументНомер,
    |	ВложенныйЗапрос.ДокументДата КАК ДокументДата,
    |	ВложенныйЗапрос.Контрагент,
    |	ВложенныйЗапрос.Организация,
    |	ВложенныйЗапрос.Номенклатура,
    |	ВложенныйЗапрос.СтавкаНДС,
    |	ВложенныйЗапрос.МетаданныеИсточник,
    |	ВложенныйЗапрос.МетаданныеПриемник               
    Возврат ТекстЗапроса;
    КонецФункции
    </span>
    Функция ОбработатьРезультат(Источник,Параметры)
    ВремТаблица = СформироватьЗапрос(Источник,Параметры);
    Отбор = Новый Структура;
    Отбор.Вставить("МетаданныеПриемник","РеализацияТоваровУслуг");
    
    Возврат ВремТаблица.НайтиСтроки(Отбор); 
    КонецФункции;
    
    
    </FONT></FONT></pre>

    Ошибка при вызове метода контекста (НайтиСтроки)
    Произошла исключительная ситуация: Несоответствие типов (параметр номер ‘1’)


  4. vartanet

    Offline

    vartanet
    Опытный в 1С
    Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.701
    Симпатии:
    15
    Баллы:
    29

    ВремТаблица — ТаблицаЗначений? если посмотреть в отладчике — там есть строки?
    МетаданныеПриемник — строка?

    PS. когда мне нужно было работать с данными из разных баз, я сначала выдирал все нужные данные из COM-соединения, преобразовывал их в объекты текущей базы (например в ТаблицуЗначений с простыми типами в колонках). а дальше работал как обычно, без заморочек с COM. в вашем случае можно так сделать?


  5. Наташа

    Offline

    Наташа
    Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29

    Попробуйте структуру создавать «на той стороне»

    Отбор = Источник.Соединение.NewObject("Структура");
    

  6. TheSerg

    Offline

    TheSerg

    Регистрация:
    17 авг 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1

    ТекстЗапроса = "ВЫБРАТЬ
    |    ВложенныйЗапрос.РегистраторСсылка,
    |    ВложенныйЗапрос.ДокументНомер,
    |    ВложенныйЗапрос.ДокументДата КАК ДокументДата,
    |    ВложенныйЗапрос.Контрагент,
    |    ВложенныйЗапрос.Организация,
    |    ВложенныйЗапрос.Номенклатура,
    |    ВложенныйЗапрос.СтавкаНДС,
    |    ВложенныйЗапрос.МетаданныеИсточник,
    |    ВложенныйЗапрос.МетаданныеПриемник  
    </span>
    </FONT></FONT></pre>

    По моему тут надо указать источник выборки данных.
    «|ИЗ
    | ДокументОбъект КАК ВложенныйЗапрос»

    Отбор.Вставить("МетаданныеПриемник","РеализацияТоваровУслуг");
    

    И тут ты передаешь строковый тип, а может надо типа:

    Отбор.Вставить("МетаданныеПриемник",Тип("ДокументСсылка.РеализацияТоваровУслуг"));
    

Поделиться этой страницей


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

start_kmv

3 / 3 / 3

Регистрация: 27.04.2014

Сообщений: 230

1

Найти значение после цикла

06.02.2018, 13:23. Показов 1414. Ответов 8

Метки нет (Все метки)


Добрый день. есть УТ 10.3
подскажите, как найти значение после цикла, например:
есть код

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Товары.Очистить();
    КоличествоСтрок = ТаблицаЦен.Количество() - 1;
    Для Тмп = 0 По КоличествоСтрок Цикл
        СтрокаТаблицыТиповЦен = ТаблицаЦен[Тмп];
 
        Для Каждого СтрокаТипаЦен Из ТипыЦен Цикл
            НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[СтрокаТипаЦен.ТипЦен];
 
            НоваяСтрока = Товары.Добавить();
            НоваяСтрока.ИндексСтрокиТаблицыЦен     = Тмп;
            НоваяСтрока.Номенклатура               = СтрокаТаблицыТиповЦен.Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = СтрокаТаблицыТиповЦен.ХарактеристикаНоменклатуры;
            НоваяСтрока.ТипЦен                     = СтрокаТипаЦен.ТипЦен;
            НоваяСтрока.Цена                       = СтрокаТаблицыТиповЦен["цена" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.Валюта                     = СтрокаТаблицыТиповЦен["валюта" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.ЕдиницаИзмерения           = СтрокаТаблицыТиповЦен["единица" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.ПроцентСкидкиНаценки       = СтрокаТаблицыТиповЦен["процент" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.СпособРасчетаЦены          = СтрокаТаблицыТиповЦен["СпособРасчета" + НомерСоответствияТекущейКолонки];
        КонецЦикла;
    КонецЦикла;

где НоваяСтрока.ТипЦен = какому то типу цен.
мне нужно найти определенный тип цен, например, «базовый» и от него уже отталкиваться.

код взят из документа установки цен номенклатуры, процедура ПередЗаписью

метод Товары.Получить(0).ТипЦен не подойдет, поскольку пользователь в документе может в любом порядке выбрать тип цены.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



_ЕГОР_

Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

06.02.2018, 13:31

2

Лучший ответ Сообщение было отмечено start_kmv как решение

Решение

1C
1
2
3
4
Отбор = Новая структура;
Отбор.Вставить("ТипЦен", Справочники.ТипыЦен.НайтиПоНаименованию("базовый"));
 
МассивСтрок = Товары.НайтиСтроки(Отбор);



1



start_kmv

3 / 3 / 3

Регистрация: 27.04.2014

Сообщений: 230

06.02.2018, 14:41

 [ТС]

3

_ЕГОР_, спасибо большое. помогли.

Добавлено через 1 час 4 минуты
_ЕГОР_, сделал вот так

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
    Товары.Очистить();
    КоличествоСтрок = ТаблицаЦен.Количество() - 1;
    Для Тмп = 0 По КоличествоСтрок Цикл
        СтрокаТаблицыТиповЦен = ТаблицаЦен[Тмп];
 
        Для Каждого СтрокаТипаЦен Из ТипыЦен Цикл
            НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[СтрокаТипаЦен.ТипЦен];
 
            НоваяСтрока = Товары.Добавить();
            НоваяСтрока.ИндексСтрокиТаблицыЦен     = Тмп;
            НоваяСтрока.Номенклатура               = СтрокаТаблицыТиповЦен.Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = СтрокаТаблицыТиповЦен.ХарактеристикаНоменклатуры;
            НоваяСтрока.ТипЦен                     = СтрокаТипаЦен.ТипЦен;
            НоваяСтрока.Цена                       = СтрокаТаблицыТиповЦен["цена" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.Валюта                     = СтрокаТаблицыТиповЦен["валюта" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.ЕдиницаИзмерения           = СтрокаТаблицыТиповЦен["единица" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.ПроцентСкидкиНаценки       = СтрокаТаблицыТиповЦен["процент" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.СпособРасчетаЦены          = СтрокаТаблицыТиповЦен["СпособРасчета" + НомерСоответствияТекущейКолонки];
        КонецЦикла;
        
        //**//
        //основная цена покупки
        Отбор = Новый Структура;
        Отбор.Вставить("ТипЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("УТ0000006"));
        МассивСтрок = Товары.НайтиСтроки(Отбор);
        ЦенаПокупки = МассивСтрок[0].Цена;
        
        //минимально-оптовая цена
        Отбор.Вставить("ТипЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("УТ0000002"));
        МассивСтрок = Товары.НайтиСтроки(Отбор);
        ЦенаМинОпт = МассивСтрок[0].Цена;
        
        //прайс райгаз
        Отбор.Вставить("ТипЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("УТ0000012"));
        МассивСтрок = Товары.НайтиСтроки(Отбор);
        ЦенаПрайсРайгаз = МассивСтрок[0].Цена;
        
        //розничная
        ОтборЦенаРозн = Новый Структура;
        ОтборЦенаРозн.Вставить("ТипыЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("УТ0000001"));
//      Если Товары.НайтиСтроки(Отбор) Тогда
        МассивСтрок = Товары.НайтиСтроки(ОтборЦенаРозн);
//      КонецЕсли;
        ЦенаРозничная = МассивСтрок[0].Цена;
        
        //ГРО
        Отбор.Вставить("ТипыЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("УТ0000011"));
        МассивСтрок = Товары.НайтиСтроки(Отбор);
        ЦенаГРО = МассивСтрок[0].Цена;
        //**//
        
    КонецЦикла;

но когда дохожу до

1C
1
2
3
4
5
6
7
        //розничная
        ОтборЦенаРозн = Новый Структура;
        ОтборЦенаРозн.Вставить("ТипыЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("УТ0000001"));
//      Если Товары.НайтиСтроки(Отбор) Тогда
        МассивСтрок = Товары.НайтиСтроки(ОтборЦенаРозн);
//      КонецЕсли;
        ЦенаРозничная = МассивСтрок[0].Цена;

ругается на
{Документ.УстановкаЦенНоменклатуры.Форма.ФормаДоку мента.Форма(1498)}: Ошибка при вызове метода контекста (НайтиСтроки)
МассивСтрок = Товары.НайтиСтроки(ОтборЦенаРозн);
по причине:
Неверное имя колонки

хотя Розничная цена есть в выборе типа цен.



0



_ЕГОР_

Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

06.02.2018, 14:54

4

Не

1C
1
ОтборЦенаРозн.Вставить("ТипыЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("УТ0000001"));

а так:

1C
1
ОтборЦенаРозн.Вставить("ТипЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("УТ0000001"));

В новой строке не ТипыЦен, а ТипЦен



0



start_kmv

3 / 3 / 3

Регистрация: 27.04.2014

Сообщений: 230

06.02.2018, 16:08

 [ТС]

5

_ЕГОР_, да, увидел. спасибо
а как прописать условие, если нет такого типа цен?
например, пользователь выбрал 2 типа цен, а в коде я предусмотрел 5 типов.
сейчас ругается: Индекс находится за границами массива

1C
1
2
3
4
5
6
        //ГРО
        Отбор.Вставить("ТипЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("УТ0000011"));
        Если Товары.НайтиСтроки(Отбор)[0].ТипЦен = Отбор.ТипЦен Тогда 
            МассивСтрок = Товары.НайтиСтроки(Отбор);
            ЦенаГРО = МассивСтрок[0].Цена;
        КонецЕсли;



0



_ЕГОР_

Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

06.02.2018, 19:18

6

Лучший ответ Сообщение было отмечено start_kmv как решение

Решение

1C
1
2
3
Если МассивСтрок.Количество()>0 Тогда
ЦенаГРО = МассивСтрок[0].Цена;
конецесли



1



3 / 3 / 3

Регистрация: 27.04.2014

Сообщений: 230

07.02.2018, 13:02

 [ТС]

7

_ЕГОР_, спасибо. все получилось. то, что нужно



0



polax

07.02.2018, 13:09

Не по теме:

start_kmv, Устное спасибо, конечно хорошо и правильно, но и отметить _ЕГОР_ кнопочкой Спасибо, приветствуется вдвойне )))



0



3 / 3 / 3

Регистрация: 27.04.2014

Сообщений: 230

09.02.2018, 07:04

 [ТС]

9

polax, исправился



0



Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста найтипореквизиту неверно указан реквизит
  • Ошибка при вызове com объекта 1c
  • Ошибка при включении ошибка процессора
  • Ошибка предварительного просмотра недостаточно свободной памяти для печати
  • Ошибка при выборе сертификата для выбранного сертификата не удается построить цепочку сертификатов