8.х Счёт в зависимости от склада

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Letos, 27 фев 2010.

  1. TopicStarter Overlay
    Letos
    Offline

    Letos Опытный в 1С

    Регистрация:
    23 ноя 2009
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    26
    Цель: Необходимо в документе "Перемещение", что бы при выборе номенклатуры, СчётУчётаБУ вставлялся 10.02 если склад откуда перемещаем "Мелкооптовый склад".
    Написал обработку, но при выборе номенклатуры выдаёт "Поле объекта не обноружено (ОформлениеСтроки)"

    Вот моя обработка:
    Код:
    Процедура ТоварыНоменклатураОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка,ОформленияСтрок) 
    //Услуг в этом документе быть не должно.      
    Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда          
    Если ВыбранноеЗначение.Услуга Тогда              
    Предупреждение("Услуг в этом документе быть не доложно.");                                     
    СтандартнаяОбработка = Ложь;  // Отказ от выбора.          
    КонецЕсли;       
    КонецЕсли;
    // ввод счёта на основании склада
    СчетБУ=ПланыСчетов.Хозрасчетный.ПокупныеПолуфабрикатыИКомплектующие;
    Если СокрЛП(ЭлементыФормы.СкладОтправитель.Значение)="Мелкооптовый склад"       Тогда 
    ЭлементыФормы.Товары.ОформлениеСтроки.Ячейки["СчетУчетаБУ"].Текст=СчетБУ;     
    КонецЕсли;  
    КонецПроцедуры 
    
    
    
    
    
    
  2. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    Процедура ТоварыНоменклатураОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка,ОформленияСтрок)
    //Услуг в этом документе быть не должно.
    Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда
    Если ВыбранноеЗначение.Услуга Тогда
    Предупреждение("Услуг в этом документе быть не доложно.");
    // СтандартнаяОбработка = Ложь; // Отказ от выбора.
    Возврат;
    КонецЕсли;
    КонецЕсли;
    // ввод счёта на основании склада
    СчетБУ=ПланыСчетов.Хозрасчетный.ПокупныеПолуфабрикатыИКомплектующие;
    Если СокрЛП(ЭлементыФормы.СкладОтправитель.Значение)="Мелкооптовый склад" Тогда
    ЭлементыФормы.Товары.ТекущиеДанные.СчетУчетаБУ=СчетБУ;
    КонецЕсли;
    КонецПроцедуры
  3. TopicStarter Overlay
    Letos
    Offline

    Letos Опытный в 1С

    Регистрация:
    23 ноя 2009
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    26
    Ничего не заработало, но стало лучше чем было. Спасибо. Пободаюсь пока ещё немного.
  4. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    попробуй так
    ЭлементыФормы.СкладОтправитель.Значение.Наименование вместо ЭлементыФормы.СкладОтправитель.Значение
  5. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    .Наименование - Это реквизит Значения

    Значение.Наименование )) )
  6. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    тогда уж Элемент.Значение.Наименование
  7. TopicStarter Overlay
    Letos
    Offline

    Letos Опытный в 1С

    Регистрация:
    23 ноя 2009
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    26
    Вернулся к старой задумке, и почти её реализовал. Есть один вопросик.
    Имеется табличная часть в документе Реализация. Я произвожу запрос.
    Как мне загрузить в ТЧ в ячейку СтавкаНДС значение из своего запроса?
  8. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    только перебором если у вас в ТЧ уже есть записи..

    а лучше получить все одним запросом... и

    Тч.Загрузить(Запрос.Выполнить().ВЫгрузить())
  9. TopicStarter Overlay
    Letos
    Offline

    Letos Опытный в 1С

    Регистрация:
    23 ноя 2009
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    26
    Это-то я знаю. Но вот в чём загвоздка. Смысол в чем. Пользователь заводит документ "Перемещение" выбирает "Номенклатуру" и в зависимости от того какой выбран склад присваивает соответствующий счёт номенклатуры.
    Что бы не делать кучу Условий. Создал отдельный справочник со складами у каждого свой счет. При выборе "Номенклатуры" произвожу запрос
    Код:
    Запрос=Новый Запрос;
    Запрос.УстановитьЗначение("Склады",ЭлементыФормы.Склад.Значение);
    Запрос.Текст="Выбрать
    |СчетСклада.Счет как счет
    |Из
    |Справочник.СчетСклада как СчетСклада
    |Где
    |СчетСклада.Склад=&Склады";
    
    
    и вот надобы этот "Счет" в ставить в ТЧ
  10. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    вообще в штатной это механизм есть....
    а тут тебе надо (если в момент ввода)...
    ЭлементыФормы.ТвояТЧ.Текущиеданные.Склад =

    Запрос.Выполнить.Выгрузить()[0].счет;


    что то типа этого
    а лучше отдельную функцию по обработке результата запроса...
  11. TopicStarter Overlay
    Letos
    Offline

    Letos Опытный в 1С

    Регистрация:
    23 ноя 2009
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    26
    Нет, не в момент ввода? В принципе всё равно когда, главное, что бы вводилось. Я всё равно попытаюсь сделать своим методом, чисто для себя. Но по поводу того, что подобный механизм уже реализован это интересно, не подскажите, как к нему обратится.

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