Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
20 Сен 2019, 11:15
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Из Excel в справочник  (Прочитано 728 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Funt432286

  • **
  • Сообщений: 63
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-10-26
  • Сайт: 
В продолжении темы!
Данные из Екселя в регистр накопления я загрузил. Сделал запрос для проверки по всем позициям!
Каждая номенклатура имеет несколько параметров (фото прилагается). делаю запрос по выбору из регистра, но вернуть мне нужно только одно из 5 параметров, в зависимости от количества печатных листов.
Как можно реализовать такой выбор, подскажите пожалуйста!


Онлайн KOI8-R

  • ***
  • Сообщений: 170
  • РЕПУТАЦИЯ: 39
  • КПД: 23%
  • Регистрация: 2017-12-27
  • Сайт: 
  • Профессия: Ученик 1С
Данные из Екселя в регистр накопления я загрузил.
Вы храните цены в регистре НАКОПЛЕНИЯ?

Оффлайн Funt432286

  • **
  • Сообщений: 63
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-10-26
  • Сайт: 
Нет, ошибочка - регистр СВЕДЕНИЙ!
Запрос выглядит вот так:
	Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СтоимостьБумаги.НазваниеБумаги,
| СтоимостьБумаги.МассаБумаги,
| СтоимостьБумаги.До50,
| СтоимостьБумаги.До100,
| СтоимостьБумаги.От100,
| СтоимостьБумаги.От250,
| СтоимостьБумаги.От500,
| СтоимостьБумаги.От1000
|ИЗ
| РегистрСведений.СтоимостьБумаги КАК СтоимостьБумаги";

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

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

Онлайн LexaK

  • *****
  • Сообщений: 1816
  • РЕПУТАЦИЯ: 532
  • КПД: 29%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
у вас неправильно, регистр построен надо было отдельно интервалы задавать и значения к ним,
если добавите еще один уровень вам придется и регистр реструктурировать и код переписывать
вот для вашего регистра, добавьте такую функцию и при ее вызове получите значение по заданной бумаге по указанному количеству листов

Функция ПолучитьРезультат(СсылкаБумага, КоличествоЛистов)

 Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Выбор
| Когда &КоличествоЛистов <= 50 Тогда Рег.До50
| Когда &КоличествоЛистов <= 100 Тогда Рег.До100
| Когда &КоличествоЛистов > 1000 Тогда Рег.От1000
| Когда &КоличествоЛистов > 500 Тогда Рег.От500
| Когда &КоличествоЛистов > 100 Тогда Рег.От100
| Конец как Значение
        |ИЗ
        |    РегистрСведений.СтоимостьБумаги КАК Рег
|Где
|    Рег.НазваниеБумаги = &Бумага  //почему реквизит НазваниеБумаги - ?
|
|";
       
Запрос.УстановитьПараметр("Бумага", СсылкаБумага);
Запрос.УстановитьПараметр("КоличествоЛистов", КоличествоЛистов);

лкВыборка = лкЗапрос.Выполнить().Выбрать();
Если лкВыборка.Следующий() Тогда
лкЗначение = лкВыборка.Значение;
Иначе
лкЗначение = лкВыборка.Значение;
КонецЕсли;
 
Возврат лкЗначение
КонецФункции
 
 
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Funt432286

  • **
  • Сообщений: 63
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-10-26
  • Сайт: 
у вас неправильно, регистр построен надо было отдельно интервалы задавать и значения к ним,
если добавите еще один уровень вам придется и регистр реструктурировать и код переписывать
вот для вашего регистра, добавьте такую функцию и при ее вызове получите значение по заданной бумаге по указанному количеству листов

Функция ПолучитьРезультат(СсылкаБумага, КоличествоЛистов)

 Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Выбор
| Когда &КоличествоЛистов <= 50 Тогда Рег.До50
| Когда &КоличествоЛистов <= 100 Тогда Рег.До100
| Когда &КоличествоЛистов > 1000 Тогда Рег.От1000
| Когда &КоличествоЛистов > 500 Тогда Рег.От500
| Когда &КоличествоЛистов > 100 Тогда Рег.От100
| Конец как Значение
        |ИЗ
        |    РегистрСведений.СтоимостьБумаги КАК Рег
|Где
|    Рег.НазваниеБумаги = &Бумага  //почему реквизит НазваниеБумаги - ?
|
|";
       
Запрос.УстановитьПараметр("Бумага", СсылкаБумага);
Запрос.УстановитьПараметр("КоличествоЛистов", КоличествоЛистов);

лкВыборка = лкЗапрос.Выполнить().Выбрать();
Если лкВыборка.Следующий() Тогда
лкЗначение = лкВыборка.Значение;
Иначе
лкЗначение = лкВыборка.Значение;
КонецЕсли;
 
Возврат лкЗначение
КонецФункции
 


Почему-то пишет ошибку
Цитировать
{Документ.РасчетЦифра.Форма.ФормаДокумента.Форма(472,17)}: Переменная не определена (лкЗапрос)
    лкВыборка = <<?>>лкЗапрос.Выполнить().Выбрать(); (Проверка: Сервер)

Онлайн LexaK

  • *****
  • Сообщений: 1816
  • РЕПУТАЦИЯ: 532
  • КПД: 29%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
просто опечатка
вместо
лкВыборка = лкЗапрос.Выполнить().Выбрать();
надо
лкВыборка = Запрос.Выполнить().Выбрать();
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Funt432286

  • **
  • Сообщений: 63
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-10-26
  • Сайт: 
просто опечатка
вместо
лкВыборка = лкЗапрос.Выполнить().Выбрать();
надо
лкВыборка = Запрос.Выполнить().Выбрать();

Для проверки добавил Сообщить(лкЗначение), но почему-то он возвращает пустое значение!

    лкВыборка = Запрос.Выполнить().Выбрать();
    Если лкВыборка.Следующий() Тогда
        лкЗначение = лкВыборка.Значение;
      Сообщить(лкЗначение);
    Иначе   
        лкЗначение = лкВыборка.Значение;
      Сообщить(лкЗначение);      
    КонецЕсли;

Последний раз редактировалось: Funt432286; 09 Сен 2019, 16:00

Онлайн LexaK

  • *****
  • Сообщений: 1816
  • РЕПУТАЦИЯ: 532
  • КПД: 29%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
чета туплю по конец
попробуйте так
 Если лкВыборка.Следующий() Тогда
        лкЗначение = лкВыборка.Значение;
    Иначе   
        лкЗначение = 0;
        Сообщить("Бумага: " + СсылкаБумага + ", Кол-во листов: " + КоличествоЛистов + " значение не найдено!");
    КонецЕсли;     
 
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Funt432286

  • **
  • Сообщений: 63
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-10-26
  • Сайт: 
чета туплю по конец
попробуйте так
 Если лкВыборка.Следующий() Тогда
        лкЗначение = лкВыборка.Значение;
    Иначе   
        лкЗначение = 0;
        Сообщить("Бумага: " + СсылкаБумага + ", Кол-во листов: " + КоличествоЛистов + " значение не найдено!");
    КонецЕсли;   

Почему-то пишет -> Бумага: Кристалл Борд С2S 300 гр., Кол-во листов: 25 значение не найдено!
Хотя данные в справочнике и регистре совпадает и количество печатных листов тоже есть! :dfbsdfbsdf:

Онлайн KOI8-R

  • ***
  • Сообщений: 170
  • РЕПУТАЦИЯ: 39
  • КПД: 23%
  • Регистрация: 2017-12-27
  • Сайт: 
  • Профессия: Ученик 1С
чета туплю по конец
попробуйте так
 Если лкВыборка.Следующий() Тогда
        лкЗначение = лкВыборка.Значение;
    Иначе   
        лкЗначение = 0;
        Сообщить("Бумага: " + СсылкаБумага + ", Кол-во листов: " + КоличествоЛистов + " значение не найдено!");
    КонецЕсли;   

Почему-то пишет -> Бумага: Кристалл Борд С2S 300 гр., Кол-во листов: 25 значение не найдено!
Хотя данные в справочнике и регистре совпадает и количество печатных листов тоже есть! :dfbsdfbsdf:
А сделайте скрин структуры регистра, а то уже гадать неинтересно. Да и заодно - он у вас периодический?

Последний раз редактировалось: KOI8-R; 09 Сен 2019, 16:57


Теги:
 

Помогите правильно настроить справочник "Единицы измерения" и "Номенклатура"

Автор perminovandrРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 554
Последний ответ 23 Янв 2019, 07:21
от Геннадий ОбьГЭС
справочник "Главы по БК"

Автор IaterРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 5871
Последний ответ 21 Май 2015, 13:56
от pavl_vs
ЗУП 3.0 справочник "Должности"

Автор denis_ivanovРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3025
Последний ответ 08 Апр 2016, 21:19
от denis_ivanov
Почему не грузиться в 1с новый производитель с тем же артикулом? Как изменить обработку что-бы артикул не проверялся а сразу заводился в справочник и суммировался с уже существующим товаром с выставлением последней цены при последней загрузки?

Автор сергей123Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 233
Последний ответ 14 Фев 2019, 11:19
от сергей123
Справочник "Ресурсные спецификации"

Автор MroРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1300
Последний ответ 17 Авг 2016, 16:13
от SGIRG

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
92 Сообщений
LexaK
53 Сообщений
alexandr_ll
41 Сообщений
Yamuna
35 Сообщений
KOI8-R
27 Сообщений
Funt432286
23 Сообщений
antoneus antoneus
22 Сообщений
BuhRust
21 Сообщений
DmitriyF DmitriyF
19 Сообщений
MuI_I_Ika MuI_I_Ika
18 Сообщений

* Кто онлайн

  • Точка Гостей: 688
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal