Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Авто заполнение форм
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
tepliymv
есть документ в 1С8.1 реализация товаров и услуг, при создании нового документа вид передачи устанавливается автоматически "со склада" , а мне необходимо что бы было "по тордеру".
Как это сделать ума не приложу везде копал и ничего пока не понял(((
заранее благодарен за помощь
Batchir
Данный реквизит (я говорю ссылаясь на УТ) заполняется программно. При создании нового документа используется процедура общего модуля ЗаполнитьШапкуДокумента(), при вводе на основании - процедура ОбработкаЗаполнения() в модуле объекта. В пользовательском режиме параметр не настраивается.
tepliymv
я просто только начинаю немного разбираться в 1С и синтекса языка вообще не понимаю, если б привели какой либо пример настройки этого модуля буду очень благодарен
tepliymv
смотрю на это и ничего не пойму...
Процедура ПриОткрытии()

    ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);
    
    Если ЭтоНовый() Тогда

        ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"), мВалютаРегламентированногоУчета, "Продажа", ПараметрОбъектКопирования, ПараметрОснование);    
        ОбщегоНазначения.ЗаполнитьОбязательныеРеквизитыШапкиНовогоДокумента(ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"));

        Если НЕ ЗначениеЗаполнено(ПараметрОбъектКопирования) Тогда
            
            СчетаУчета = УправлениеВзаиморасчетами.ПолучитьСчетаРасчетовСКонтрагентом(Организация, Контрагент, ДоговорКонтрагента);
            
            Если ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером Тогда
                СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателя;
                СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателя;
            ИначеЕсли ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.Бартерный Тогда
                СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателяПриБартере;
                СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателяПриБартере;
            Иначе
                СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателя;
                СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателя;
            КонецЕсли;
            
            СчетУчетаРасчетовПоТаре          = СчетаУчета.СчетУчетаТарыПокупателя;
            СчетУчетаРасчетовПоТареПоАвансам = СчетаУчета.СчетАвансовПоТареПокупателя;
            СтатьяВаловыхДоходов             = СчетаУчета.СтатьяВаловыхДоходов;
            
            СчетУчетаНДС                 = СчетаУчета.СчетУчетаНДСПродаж;
            СчетУчетаНДСПодтвержденный  = СчетаУчета.СчетУчетаНДСПродажПодтвержденный;
            
        КонецЕсли;
        
    Иначе
        
        НастройкаПравДоступа.ОпределитьДоступностьВозможностьИзмененияДокументаПоДа
теЗапрета(ДокументОбъект, ЭтаФорма);
    
    КонецЕсли;
    
    МеханизмНумерацииОбъектов.УстановитьДоступностьПоляВводаНомера(Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Подменю1,ЭлементыФормы.Номер);

    РаботаСДиалогами.ПроверитьВидПоступленияПередачи(ЭтотОбъект, ЭтаФорма);

    СтруктураКолонок = Новый Структура();

    // Установить колонки, видимостью которых пользователь управлять не может.
    СтруктураКолонок.Вставить("Номенклатура");
    СтруктураКолонок.Вставить("Количество");
    СтруктураКолонок.Вставить("Цена");
    СтруктураКолонок.Вставить("Сумма");
    СтруктураКолонок.Вставить("СпособСписанияОстаткаТоваров");
    СтруктураКолонок.Вставить("СчетУчетаБУ");
    СтруктураКолонок.Вставить("СхемаРеализации");
    СтруктураКолонок.Вставить("НалоговоеНазначение");
    СтруктураКолонок.Вставить("СтатьяПриростаУбылиЗапасов");

    // Установить ограничение - изменять видимоть колонок для таличной части
    // "Возвратная тара".
    ОбработкаТабличныхЧастей.УстановитьИзменятьВидимостьКолонокТабЧасти(мКолонкиВозвратнаяТара, СтруктураКолонок);

    // Установить колонки, видимостью которых пользователь управлять не может.
    СтруктураКолонок.Вставить("СтавкаНДС");
    СтруктураКолонок.Вставить("СуммаНДС");
    СтруктураКолонок.Вставить("ЕдиницаИзмерения");
    СтруктураКолонок.Вставить("Качество");
    СтруктураКолонок.Вставить("СчетУчетаБУ");
    СтруктураКолонок.Вставить("ПереданныеСчетУчетаБУ");
    СтруктураКолонок.Вставить("СхемаРеализации");
    СтруктураКолонок.Вставить("СтатьяПриростаУбылиЗапасов");
    СтруктураКолонок.Вставить("НалоговоеНазначение");
    СтруктураКолонок.Вставить("УчитываетсяКакЗапасНУ");
    
    ОбработкаТабличныхЧастей.УстановитьИзменятьВидимостьКолонокТабЧасти(мКолонкиТовары, СтруктураКолонок);

    // Установить колонки, видимостью которых пользователь управлять не может.
    СтруктураКолонок = Новый Структура();
    СтруктураКолонок.Вставить("Номенклатура");
    СтруктураКолонок.Вставить("Количество");
    СтруктураКолонок.Вставить("Сумма");
    СтруктураКолонок.Вставить("СхемаРеализации");
    СтруктураКолонок.Вставить("НалоговоеНазначение");

    ОбработкаТабличныхЧастей.УстановитьИзменятьВидимостьКолонокТабЧасти(мКолонкиУслуги, СтруктураКолонок);
    
    // Заполняем подменю, вызываемое нажатием кнопки "Операция" командной панели
    // формы, значениями перечисления "Вид операции" данного вида документа.
    // В качестве обработки выбора вида операции назначается процедура
    // ДействияФормыДействиеУстановитьОперацию модуля формы.
    РаботаСДиалогами.УстановитьПодменюВыбораВидаОперации(ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВидаОперации,
                                          ВидОперации.Метаданные().ЗначенияПеречисления,
                                          Новый Действие("ДействияФормыДействиеУстановитьОперацию"));

    // Вывести в заголовке формы вид операции.
    РаботаСДиалогами.УстановитьЗаголовокФормыДокумента(Строка(ВидОперации), ЭтотОбъект, ЭтаФорма);

    // Обновить содержание информационных строк.
    РаботаСДиалогами.СформироватьНадписьДолга(ДоговорКонтрагента, Сделка, ЭлементыФормы.ИнфНадписьДолга, Ссылка, Истина);
    УстановитьЗаголовкиПоДоговору();

    // Запомнить текущие значения реквизитов формы.
    мТекущаяДатаДокумента        = Дата;
    мТекущаяВалютаВзаиморасчетов = ДоговорКонтрагента.ВалютаВзаиморасчетов;
    мТекущаяСхемаНалогообложения = ОбщегоНазначения.ПолучитьСхемуНалогообложения(Дата,Организация);

    // Установить видимость колонок "ХарактеристикаНоменклатуры" и "СерияНоменклатуры"
    РаботаСДиалогами.УстановитьВидимостьХарактеристикиНоменклатуры(мКолонкиТовары);
    РаботаСДиалогами.УстановитьВидимостьСерииНоменклатуры(мКолонкиТовары);

    // Управление видимостью счетов
    ПоказыватьВДокументахСчетаУчета = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ПоказыватьВДокументахСчетаУчета");
    ЭлементыФормы.ДействияФормы.Кнопки.ПоказатьСкрытьСчетаУчета.Пометка = ПоказыватьВДокументахСчетаУчета;
    
    РаботаСДиалогами.УстановитьВидимостьОбязательностьСклада(мКолонкиТовары, мКолонкиВозвратнаяТара, ЭлементыФормы.Склад, "Склад", мУказаниеСкладовВТЧ);

    //Запомним автоотметку поля шапки Склад
    мАвтоОтметкаСклада = ЭлементыФормы.Склад.АвтоОтметкаНезаполненного;
    
    РаботаСДиалогами.УстановитьВидимостьКолонкиЗаказ(ЭлементыФормы, ВидОперации, ДоговорКонтрагента, мКолонкиТовары, мКолонкиВозвратнаяТара, мКолонкиУслуги, мКолонкиДокументы, ЭлементыФормы.Сделка);
    
    // Установить видимость реквизитов и заголовков колонок.
    УстановитьВидимость();
    
    УстановитьВидимостьКонтроляВзаиморасчетов();
    
    УстановитьАвтоотметкуСклада();

    ЭлементыФормы.ОсновнаяПанель.Страницы.Услуги.Видимость = (ДоговорКонтрагента.ВидДоговора <> Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером);

    ПриИзмененииВидаСклада();

    // установим доступность колонки "Цена" для редактирования
    мМожноМенятьЦенуВДокументе = УправлениеДопПравамиПользователей.РазрешитьРедактированиеЦенВДокументах();

    мКолонкиТовары.Цена.ЭлементУправления.ТолькоПросмотр                 = НЕ мМожноМенятьЦенуВДокументе;
    мКолонкиТовары.Сумма.ЭлементУправления.ТолькоПросмотр                = НЕ мМожноМенятьЦенуВДокументе;
    мКолонкиТовары.ПроцентСкидкиНаценки.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;
    мКолонкиТовары.СуммаНДС.ЭлементУправления.ТолькоПросмотр             = НЕ мМожноМенятьЦенуВДокументе;

    мКолонкиВозвратнаяТара.Цена.ЭлементУправления.ТолькоПросмотр         = НЕ мМожноМенятьЦенуВДокументе;
    мКолонкиВозвратнаяТара.Сумма.ЭлементУправления.ТолькоПросмотр        = НЕ мМожноМенятьЦенуВДокументе;

    мКолонкиУслуги.Цена.ЭлементУправления.ТолькоПросмотр                 = НЕ мМожноМенятьЦенуВДокументе;
    мКолонкиУслуги.ПроцентСкидкиНаценки.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;
    мКолонкиУслуги.Сумма.ЭлементУправления.ТолькоПросмотр                = НЕ мМожноМенятьЦенуВДокументе;
    мКолонкиУслуги.СуммаНДС.ЭлементУправления.ТолькоПросмотр             = НЕ мМожноМенятьЦенуВДокументе;

    // Установка текущей страницы
    Страницы = Новый СписокЗначений;
    Страницы.Добавить("Товары",                         "Товары");
    Страницы.Добавить("Тара",                           "ВозвратнаяТара");
    Страницы.Добавить("Услуги",                         "Услуги");
    Страницы.Добавить("ДокументыРасчетовСКонтрагентом", "ДокументыРасчетовСКонтрагентом");
    РаботаСДиалогами.УстановкаТекущейСтраницы(ЭтотОбъект, ЭлементыФормы.ОсновнаяПанель, Страницы,);
    
    // Установить активный реквизит.
    РаботаСДиалогами.АктивизироватьРеквизитВФорме(ЭтотОбъект, ЭтаФорма);

    // Сохраним текущее значение сделки
    мСтароеЗначениеСделки = Сделка;
    мСтароеЗначениеСклада = Склад;

    РаботаСДиалогами.УстановитьДоступностьКнопкиЗаполнитьИзТерминалаСбораДанных(ЭтаФорма, мТерминалы);
    РаботаСДиалогами.УстановитьДоступностьМенюПроверить(ЭтаФорма);

    РаботаСДиалогами.УстановитьДоступностьКнопкиСерийныеНомера(ЭлементыФормы.КоманднаяПанельТовары.Кнопки);

    ЭтаФорма.ПодключитьОбработчикИзмененияДанных("ВидПередачи"                 , "ОбработчикИзмененияДанных");
    ЭтаФорма.ПодключитьОбработчикИзмененияДанных("ОтражатьВУправленческомУчете", "ОбработчикИзмененияДанных");

КонецПроцедуры // ПриОткрытии()
Batchir
Вам нужно найти в ПриОткрытии()

ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"), мВалютаРегламентированногоУчета, "Продажа", ПараметрОбъектКопирования, ПараметрОснование);


Сначала перед кодом написать что-то типа этого

ВидПередачи = Перечисления.ВидыПередачиТоваров.ПоОрдеру;


Обновить БД и перезапустьить 1С предприятие.
Если не поможет, то вставить этот код после выполнения ЗаполнитьШапкуДокумента

Если и это не поможет, то сообщите конфигурацию и релиз, тогда будет яснее.
capitoshko
Цитата(tepliymv @ 08.04.10, 13:56) необходимо зарегистрироваться для просмотра ссылки
есть документ в 1С8.1 реализация товаров и услуг, при создании нового документа вид передачи устанавливается автоматически "со склада" , а мне необходимо что бы было "по тордеру".
Как это сделать ума не приложу везде копал и ничего пока не понял(((
заранее благодарен за помощь


є така процедура при відкритті форми - в ній це і прописується - ПриОткрытии()
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.