8.х Структура подчиненности документа - помогите

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем siriusall, 10 ноя 2012.

  1. TopicStarter Overlay
    siriusall
    Offline

    siriusall

    Регистрация:
    10 ноя 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Добрый день уважаемые профессионалы форума.
    Прошу у Вас помощи в решение проблемы со структурой подчиненности документа.

    И так имею 1С 8.1 УТ10.3
    В программе две фирмы.
    Порядок действий:
    Поступление товаров и услуг (На склад фирмы №1, без заказа)
    На основании поступления товаров и услуг, фирма №1 делает реализацию товаров и услуг фирме №2. (так же вся проводка без заказов)
    После чего фирма №2 делает поступление товаров и услуг.
    Вот порядок действий.
    После чего конечно я не могу посмотреть Структура подчиненности документа.
    Можно как-то сделать что бы было видно все проделанные шаги в Структура подчиненности документа?
  2. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    http://infostart.ru/public/157282/
  3. TopicStarter Overlay
    siriusall
    Offline

    siriusall

    Регистрация:
    10 ноя 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    nbIpKuH_BaH9I - Спасибо огромное, о большем я и мечтать не мог!!! Как ты там нашел, я вчера его весь перерыл.
  4. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Для спасибо отдельная кнопка есть. А по поводу поиска, не поверите. Набираете в GOOGLE "Структура подчиненности документов в УТ" и все.
  5. TopicStarter Overlay
    siriusall
    Offline

    siriusall

    Регистрация:
    10 ноя 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    nbIpKuH_BaH9I, сделал все как там написано, все ок, как только пытаюсь применить все тоже самое к поступлению товара и реализации не работает.

    Я так понимаю что Процедура ОбработкаЗаполнения(Основание) у установки цен, отличается от поступления товара и реализации и я не так вставляю код.
  6. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Понятное дело, что код в этих процедурах отличается. Надо отлаживать этот процесс. Сразу так и не скажешь, что Вы делаете не так. Куда и какой код Вы вставили?
  7. TopicStarter Overlay
    siriusall
    Offline

    siriusall

    Регистрация:
    10 ноя 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Как пишит автор:
    код:
    Дата = Основание.Дата;
    ДокументОснование = Основание;

    Необходимо вставить в:
    Код:
    Процедура ОбработкаЗаполнения(Основание)
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
    // Заполним реквизиты из стандартного набора по документу основанию.
    ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ЭтотОбъект, Основание);
    Дата = Основание.Дата;
    ДокументОснование = Основание;
    КонецЕсли;
    КонецПроцедуры // ОбработкаЗаполнения()
    
    Это если говорить о установке цен.\

    А код в реализации и поступлении немного другой, и куда там его вставить?
    Код:
    Процедура ОбработкаЗаполнения(Основание)
    
    Если ТипЗнч(Основание) <> Тип("ДокументСсылка.ЗаказПокупателя")
    И ТипЗнч(Основание) <> Тип("ДокументСсылка.СчетНаОплатуПокупателю")
    И ТипЗнч(Основание) <> Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
    возврат;
    КонецЕсли;
    
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаказПокупателя")
    ИЛИ ТипЗнч(Основание) = Тип("ДокументСсылка.СчетНаОплатуПокупателю") Тогда
    // Заполним реквизиты из стандартного набора по документу основанию.
    ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ЭтотОбъект, Основание);
    ЗаполнениеДокументов.ЗаполнитьДанныеДоставкиПоОснованию(ЭтотОбъект, Основание);
    ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;
    ВидПередачи = Перечисления.ВидыПередачиТоваров.СоСклада;
    Если Не ЗначениеЗаполнено(Склад) Тогда
    Склад = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойСклад");
    КонецЕсли;
    #Если Клиент Тогда
    Если Не ЗначениеЗаполнено(Склад) И НЕ мУказаниеСкладовВТЧ И ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
    ВвестиЗначение(Склад, "Выберите склад", Тип("СправочникСсылка.Склады"));
    КонецЕсли;
    #КонецЕсли
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаказПокупателя")
    Или (ТипЗнч(Основание) = Тип("ДокументСсылка.СчетНаОплатуПокупателю")
    И ДоговорКонтрагента.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам) Тогда
    Сделка = Основание;
    Иначе
    Сделка = Основание.ЗаказПокупателя;
    КонецЕсли;
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.СчетНаОплатуПокупателю") Тогда
    СкопироватьТовары(Основание);
    СкопироватьВозвратнуюТару(Основание);
    СкопироватьУслуги(Основание);
    ИначеЕсли Основание.Проведен Тогда // Заказ покупателя
    
    // Заполним табличные части неполученными ТМЦ (резервом) по заказу покупателя.
    ЗаполнитьТабличнуюЧастьПоЗаказуПокупателяУпр(Товары, Основание);
    ЗаполнитьТабличнуюЧастьПоЗаказуПокупателяУпр(ВозвратнаяТара, Основание);
    ЗаполнитьУслугиПоОстаткамУпр();
    КонецЕсли;
    ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
    // Заполним реквизиты шапки по документу основанию.
    Организация   = Основание.Организация;
    Подразделение = Основание.Подразделение;
    ВидОперации   = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;
    ВидПередачи   = Перечисления.ВидыПередачиТоваров.СоСклада;
    Если Основание.ВидПоступления = Перечисления.ВидыПоступленияТоваров.НаСклад Тогда
    Склад = Основание.СкладОрдер;
    Иначе
    Склад = Основание.СкладОрдер.Склад;
    КонецЕсли;
    МассивЗаказов = Неопределено;
    #Если Клиент Тогда
    СтруктТабЧастей = Новый Структура;
    СтруктТабЧастей.Вставить("Товары",		 "Заказ");
    СтруктТабЧастей.Вставить("ВозвратнаяТара", "Заказ");
    СтруктПараметры = Новый Структура;
    СтруктПараметры.Вставить("ТабЧасти", СтруктТабЧастей);
    
    ЗаказыВТабЧасти = Константы.УказаниеЗаказовВТабличнойЧастиДокументов.Получить();
    СтруктПараметры.Вставить("ЗаказВТабЧасти",
    ЗаказыВТабЧасти = Перечисления.ВариантыУказанияЗаказовВТабличнойЧастиДокументов.ДляДокументовРеализации
    Или ЗаказыВТабЧасти = Перечисления.ВариантыУказанияЗаказовВТабличнойЧастиДокументов.ДляДокументовПоступленияРеализации);
    РезультатВыбораЗаказа = УправлениеЗаказами.ВыбратьЗаказИзДокументаОснования(Основание, СтруктПараметры);
    Если РезультатВыбораЗаказа.ВыборСделан Тогда
    Контрагент		 = РезультатВыбораЗаказа.Контрагент;
    Если ЗаполнениеДокументов.МожноИспользоватьДоговорДляДокумента(РезультатВыбораЗаказа.Договор, Контрагент, Организация, мСтруктураПараметровДляПолученияДоговора) Тогда
    ДоговорКонтрагента = РезультатВыбораЗаказа.Договор;
    КонецЕсли;
    МассивЗаказов	  = РезультатВыбораЗаказа.Заказ;
    Если МассивЗаказов.Количество() = 1 Тогда
    Сделка		 = МассивЗаказов[0];
    КонецЕсли;
    КонецЕсли;
    #Иначе
    Контрагент		 = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойПокупатель");
    #КонецЕсли
    ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(ЭтотОбъект, мСтруктураПараметровДляПолученияДоговора);
    Если НЕ ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
    ВалютаДокумента = мВалютаРегламентированногоУчета;
    Иначе
    ВалютаДокумента = ДоговорКонтрагента.ВалютаВзаиморасчетов;
    КонецЕсли;
    СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДокумента, ОбщегоНазначения.ПолучитьРабочуюДату());
    КурсВзаиморасчетов		   = СтруктураКурсаВзаиморасчетов.Курс;
    КратностьВзаиморасчетов	  = СтруктураКурсаВзаиморасчетов.Кратность;
    // ТипЦен.
    ТипЦен = ДоговорКонтрагента.ТипЦен;
    Если НЕ ЗначениеЗаполнено(ТипЦен) Тогда
    ТипЦен = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойТипЦенПродажи");
    КонецЕсли;
    // Флаги включения налогов.
    УчитыватьНДС = Истина;
    Если ЗначениеЗаполнено(ТипЦен) Тогда
    // Если цены выбранного типа расчетные, то флаги включения налогов надо брать из базовой цены.
    ВремТипЦен	   = ?(ТипЦен.Рассчитывается, ТипЦен.БазовыйТипЦен, ТипЦен);
    СуммаВключаетНДС = ВремТипЦен.ЦенаВключаетНДС;
    Иначе
    // Заполним значениями по умолчанию (не заполнен ТипЦен).
    СуммаВключаетНДС= Истина;
    КонецЕсли;
    Если Основание.Проведен Тогда
    // Заполним табличные части по документу основанию (Поступление товаров);
    // количество - минимум из того, что есть в документе основании и свободного остатка на складе.
    ЗаполнитьТоварыПоПоступлениюТоваровУпр(Основание,"Товары", МассивЗаказов);
    ЗаполнитьВозвратнуюТаруПоПоступлениюТоваровУпр(Основание, МассивЗаказов);
    КонецЕсли;
    КонецЕсли;
    Если ОбщегоНазначения.ЕстьРеквизитДокумента("ОтражатьВУправленческомУчете", Основание.Метаданные()) Тогда
    ОтражатьВУправленческомУчете = Основание.ОтражатьВУправленческомУчете;
    Иначе
    ОтражатьВУправленческомУчете = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОтражатьДокументыВУправленческомУчете");
    КонецЕсли;
    Если ОбщегоНазначения.ЕстьРеквизитДокумента("ОтражатьВБухгалтерскомУчете", Основание.Метаданные()) Тогда
    ОтражатьВБухгалтерскомУчете = Основание.ОтражатьВБухгалтерскомУчете;
    ОтражатьВНалоговомУчете	 = Основание.ОтражатьВНалоговомУчете;
    Иначе
    ОтражатьВБухгалтерскомУчете = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОтражатьДокументыВБухгалтерскомУчете");
    Если ОтражатьВБухгалтерскомУчете Тогда
    ОтражатьВНалоговомУчете = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОтражатьДокументыВНалоговомУчете");
    Иначе
    ОтражатьВНалоговомУчете = ОтражатьВБухгалтерскомУчете;
    КонецЕсли;
    КонецЕсли;
    Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
    УправлениеВзаиморасчетами.ДополнитьСтруктуруПараметровДляЗаполненияТаблицыДокументовРасчетов(ЭтотОбъект, мСтруктураПараметровВзаиморасчетов);
    УправлениеВзаиморасчетами.ЗаполнитьТаблицуДокументовРасчетовСКонтрагентом(ЭтотОбъект, мСтруктураПараметровВзаиморасчетов);
    КонецЕсли;
    КонецПроцедуры // ОбработкаЗаполнения()
    
  8. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Я же говорю, что нужно отлаживать этот процесс. Попробуйте сюда
    Код:
    ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
    Точнее после этих сторк
  9. TopicStarter Overlay
    siriusall
    Offline

    siriusall

    Регистрация:
    10 ноя 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Я туда и вставлял, но не проходит.
  10. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Ну тогда методом тыка. Экспериментируйте.
  11. TopicStarter Overlay
    siriusall
    Offline

    siriusall

    Регистрация:
    10 ноя 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Что-то мне кажется, что этот метод для меня не подходит, ибо я уже все перепробовал
  12. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    На инфостарте есть много отчетов показывающих структуру подчиненности документов. Может воспользуйтесь ими. Типа этого: _infostart.ru/public/63761/
  13. TopicStarter Overlay
    siriusall
    Offline

    siriusall

    Регистрация:
    10 ноя 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Этот я видел, толку от него ноль :unsure:

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