Имя: Пароль:
1C
1С v8
Простой вопрос для знающих УТ 11
0 volfy
 
27.11.12
00:58
Подскажите какой код заполняет реквезиты при изменении поля "Партнёр" у документа заказ покупателя, мне надо выдернуть этот код во внешнюю обработку но я уже долго блуждаю в дебрях конфигурации и не могу его найти =*(
1 Азат
 
27.11.12
01:00
правой кнопкой клик по реквизиту формы, увидишь список методов в контекстном меню...
стелепатирую что что-то вроде "ПриИзмененииПартнера"
2 volfy
 
27.11.12
01:00
Проставить:
Соглашение
Организация
Склад
Валюта
ЖелаемаяДатаОтгрузки
Налогообложение
ЦенаВключаетНДС
Оплата
3 volfy
 
27.11.12
01:01
Да это то находил ...копался только не нашел ....продолжаю поиски может просто кто то уже знает конкретно где этот код .... а то уже почти всё сделал..это последнее что осталось
4 H A D G E H O G s
 
27.11.12
01:03
Че надо то конкретно?
5 volfy
 
27.11.12
01:05
В резиме отладки я при изменении Партнёра в документе "ЗаказыКлиента" получаю сразу автоматом заполненные поля Соглашения (типового) склада и прочего... вот надо вызвать тоже самое только программно .... где оно лежит?
6 volfy
 
27.11.12
01:09
Оно?




// Заполняет условия продаж по умолчанию в заказе клиента
//
Процедура ЗаполнитьУсловияПродажПоУмолчанию() Экспорт
   
   Если ЗначениеЗаполнено (Партнер) Тогда
       
       УсловияПродажПоУмолчанию = ПродажиСервер.ПолучитьУсловияПродажПоУмолчанию(
           Партнер,
           Дата,
           Новый Структура("УчитыватьГруппыСкладов, ВыбранноеСоглашение", Истина, Соглашение)
       );
       
       Если УсловияПродажПоУмолчанию <> Неопределено Тогда
           
           Соглашение = УсловияПродажПоУмолчанию.Соглашение;
           ЗаполнитьУсловияПродаж(УсловияПродажПоУмолчанию);
           
           СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(ЭтотОбъект);
           ПродажиСервер.ЗаполнитьЦены(
               Товары,
               , // Массив строк или структура отбора
               Новый Структура( // Параметры заполнения
                   "Дата, Валюта, Соглашение, ПоляЗаполнения",
                   Дата,
                   Валюта,
                   Соглашение,
                   "Цена, СтавкаНДС, ВидЦены, СрокПоставки"
               ),
               Новый Структура( // Структура действий с измененными строками
                   "ПересчитатьСумму, ПересчитатьСуммуСНДС, ПересчитатьСуммуНДС, ПересчитатьСуммуРучнойСкидки, ОчиститьАвтоматическуюСкидку, ПересчитатьСуммуСУчетомРучнойСкидки",
                   "КоличествоУпаковок", СтруктураПересчетаСуммы, СтруктураПересчетаСуммы, "КоличествоУпаковок", Неопределено, Новый Структура("Очищать", Ложь)
               )
           );
       Иначе
           ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Партнер, Контрагент);
       КонецЕсли;
       
       БанковскийСчетКонтрагента = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетКонтрагентаПоУмолчанию(Контрагент, , БанковскийСчетКонтрагента);
       
   КонецЕсли;
   
   АдресДоставки = ФормированиеПечатныхФорм.ПолучитьАдресИзКонтактнойИнформации(Партнер);
   
КонецПроцедуры
7 volfy
 
27.11.12
01:09
Бошка кипит....тяжело быть новичком в таком деле....
8 H A D G E H O G s
 
27.11.12
01:10
ПартнерПриИзменении()->ПриИзмененииПартнераСервер()->ДокументПродажи.ЗаполнитьУсловияПродажПоУмолчанию()
9 H A D G E H O G s
 
27.11.12
01:11
ДокументПродажи - это документ ЗаказКлиента
10 H A D G E H O G s
 
27.11.12
01:11
ЗаполнитьУсловияПродажПоУмолчанию() - процедура модуля объекта ЗаказКлиента
11 volfy
 
27.11.12
01:22
Ооо значит оно =) спасииибо =) выручаешь как всегда .... с меня пиво =)
12 volfy
 
27.11.12
02:58
Есть проблема, при изменении статуса на готов к отгрузке и проведении ругается на то что не заполнено поле склад, хотя оно заполнено... в чем дело? ...вот весь код




&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)  // Выбор файла
   
   Режим = РежимДиалогаВыбораФайла.Открытие;
   ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
   ДиалогОткрытияФайла.ПолноеИмяФайла = "";
   Фильтр = "Документ Microsoft Office Excell 2007 - 2010 (*.xlsx)|*.xlsx|Документ Microsoft Office Excell 2003(*.xls)|*.xls";
   ДиалогОткрытияФайла.Фильтр = Фильтр;
   ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
   ДиалогОткрытияФайла.Заголовок = "Выберите файл";
   Если ДиалогОткрытияФайла.Выбрать() Тогда
       ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
   Иначе
       Текст = "ru = ""Файл(ы) не выбран!""; en = ""File(s) not selected!""";
       Предупреждение(НСтр(Текст));
   КонецЕсли;
   
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)   // Выбор файла
   
   Режим = РежимДиалогаВыбораФайла.Открытие;
   ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
   ДиалогОткрытияФайла.ПолноеИмяФайла = "";
   Фильтр = "Документ Microsoft Office Excell 2007 - 2010 (*.xlsx)|*.xlsx|Документ Microsoft Office Excell 2003(*.xls)|*.xls";
   ДиалогОткрытияФайла.Фильтр = Фильтр;
   ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
   ДиалогОткрытияФайла.Заголовок = "Выберите файл";
   Если ДиалогОткрытияФайла.Выбрать() Тогда
       Контрагенты = ДиалогОткрытияФайла.ПолноеИмяФайла;
   Иначе
       Текст = "ru = ""Файл(ы) не выбран!""; en = ""File(s) not selected!""";
       Предупреждение(НСтр(Текст));
   КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьДокументы(Команда)  // Кнопка
    РезультатЗагрузкиДокументов = ПрочитатьТабличныйДокументExcelВТЗВДокумент(ПутьКФайлу, Контрагенты);  
КонецПроцедуры

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

Функция ПрочитатьТабличныйДокументExcelВТЗВДокумент(ПутьКФайлу, Контрагенты)   // Тело обработки
   Начало = ТекущаяДата();
   
     xlLastCell = 11;
   
   КЧ = Новый КвалификаторыЧисла(12,2);
   КС = Новый КвалификаторыСтроки(100);
   Массив = Новый Массив;
   Массив.Добавить(Тип("Строка"));
   ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);
   Массив.Очистить();
   Массив.Добавить(Тип("Число"));
   ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ);
   
       
   ВыбФайл = Новый Файл(ПутьКФайлу);    
   Если НЕ ВыбФайл.Существует() Тогда        
       Сообщить("Файл не существует!");
       Возврат 0;
   КонецЕсли;
   
   Попытка
       Excel = Новый COMОбъект("Excel.Application");    
       Excel.WorkBooks.Open(ПутьКФайлу);                    
       ExcelЛист = Excel.Sheets(2);                      
   Исключение
       Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
       Возврат 0;
   КонецПопытки;
   
   ActiveCell = ExcelЛист.Cells.SpecialCells(xlLastCell);
   RowCount = ActiveCell.Row;                            
   ColumnCount = ActiveCell.Column;
   
   ТЗ = Новый ТаблицаЗначений;
   ТЗ.Колонки.Добавить("Артикул", ОписаниеТиповС);
   ТЗ.Колонки.Добавить("Товар", ОписаниеТиповС);
   ТЗ.Колонки.Добавить("Цена", ОписаниеТиповЧ);
   ТЗ.Колонки.Добавить("Номер", ОписаниеТиповС);
   ТЗ.Колонки.Добавить("Количество", ОписаниеТиповЧ);

   Для Row = 2 По RowCount Цикл
        Запись = ТЗ.Добавить();
        Запись.Артикул = ExcelЛист.Cells(Row, 3).Value;
        Запись.Товар = ExcelЛист.Cells(Row, 4).Value;
        Запись.Цена = ExcelЛист.Cells(Row, 5).Value;
        Запись.Номер = ExcelЛист.Cells(Row, 1).Value;
        Запись.Количество = ExcelЛист.Cells(Row, 2).Value;
   КонецЦикла;    
   
   ВыбФайл = Новый Файл(Контрагенты);    
   Если НЕ ВыбФайл.Существует() Тогда        
       Сообщить("Файл не существует!");
       Возврат 0;
   КонецЕсли;
   
   Попытка
       Excel = Новый COMОбъект("Excel.Application");    
       Excel.WorkBooks.Open(Контрагенты);                    
       ExcelЛист = Excel.Sheets(1);                      
   Исключение
       Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
       Возврат 0;
   КонецПопытки;
   
   ActiveCell = ExcelЛист.Cells.SpecialCells(xlLastCell);
   RowCount = ActiveCell.Row;                            
   ColumnCount = ActiveCell.Column;
   
   ТЗКонтр = Новый ТаблицаЗначений;
   ТЗКонтр.Колонки.Добавить("НомерЗаказа", ОписаниеТиповС);
   ТЗКонтр.Колонки.Добавить("ГородДоставки", ОписаниеТиповС);
   ТЗКонтр.Колонки.Добавить("АдресДоставки", ОписаниеТиповС);
   ТЗКонтр.Колонки.Добавить("КонтактноеЛицо", ОписаниеТиповС);
   ТЗКонтр.Колонки.Добавить("Телефон", ОписаниеТиповС);
   
   Для Row = 8 По RowCount Цикл
        Запись = ТЗКонтр.Добавить();
        Запись.НомерЗаказа = ExcelЛист.Cells(Row, 6).Value;
        Запись.ГородДоставки = ExcelЛист.Cells(Row, 8).Value;
        Запись.АдресДоставки = ExcelЛист.Cells(Row, 9).Value;
        Запись.Телефон = ExcelЛист.Cells(Row, 12).Value;
        Запись.КонтактноеЛицо = ExcelЛист.Cells(Row, 11).Value;
   КонецЦикла;    
   
   ТЗ.Сортировать("Номер Возр");
   ТекДок = "";
   Док = "";
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТЗ", ТЗ);
   Запрос.УстановитьПараметр("ТЗКонтр", ТЗКонтр);
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ТЗ.Артикул,
   |    ТЗ.Товар,
   |    ТЗ.Цена,
   |    ТЗ.Номер,
   |    ТЗ.Количество
   |ПОМЕСТИТЬ ВТ1
   |ИЗ
   |    &ТЗ КАК ТЗ
   |ГДЕ
   |    НЕ ТЗ.Номер ЕСТЬ NULL
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    ТЗКонтр.НомерЗаказа,
   |    ТЗКонтр.ГородДоставки,
   |    ТЗКонтр.АдресДоставки,
   |    ТЗКонтр.КонтактноеЛицо,
   |    ТЗКонтр.Телефон
   |ПОМЕСТИТЬ ВТ2
   |ИЗ
   |    &ТЗКонтр КАК ТЗКонтр
   |ГДЕ
   |    НЕ ТЗКонтр.НомерЗаказа ЕСТЬ NULL
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    ВТ1.Артикул,
   |    ВТ1.Товар,
   |    ВТ1.Цена,
   |    ВТ1.Номер,
   |    ВТ1.Количество,
   |    ВТ2.НомерЗаказа,
   |    ВТ2.ГородДоставки,
   |    ВТ2.КонтактноеЛицо,
   |    ВТ2.АдресДоставки,
   |    ВТ2.Телефон
   |ИЗ
   |    ВТ1 КАК ВТ1
   |        ПОЛНОЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2
   |        ПО ВТ1.Номер = ВТ2.НомерЗаказа
   |ГДЕ
   |    НЕ ВТ1.Номер ЕСТЬ NULL
   |    И НЕ ВТ2.НомерЗаказа ЕСТЬ NULL ";
   Выборка = Запрос.Выполнить();
   Результат = Выборка.Выбрать();
   
   Пока Результат.Следующий() Цикл    
       Если Не ТекДок = Результат.Номер Тогда
           Если Не ТекДок = "" Тогда
               Попытка
                   Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
               Исключение
                   Док.Записать();
               КонецПопытки;
           КонецЕсли;
           
           
           ТекДок = Формат(Число(Результат.Номер), "ЧГ=0");
           
           Док = Документы.ЗаказКлиента.НайтиПоРеквизиту("НомерПоДаннымКлиента", ТекДок);      
                                                                                                           
           Если Док.Пустая() Тогда                                                                          
               Док = Документы.ЗаказКлиента.СоздатьДокумент();  
           Иначе
               Док = Док.ПолучитьОбъект();
           КонецЕсли;
           
           Док.Дата = ТекущаяДата();
           Док.НомерПоДаннымКлиента = Формат(Число(Результат.Номер), "ЧГ=0");
           Док.Партнер = Справочники.Партнеры.НеизвестныйПартнер;
           Док.Статус = Перечисления.СтатусыЗаказовКлиентов.Согласован;  
           Док.Приоритет = Перечисления.Приоритеты.Средний;
           Док.Менеджер = ПараметрыСеанса.ТекущийПользователь;
       КонецЕсли;
       
       ПоискКонтрагента = НайтиКонтрагента(Результат);
       Док.Контрагент = ПоискКонтрагента;  
       
       //  Код изменения при изменении партнёра представлен ниже
       УсловияПродажПоУмолчанию = ПродажиСервер.ПолучитьУсловияПродажПоУмолчанию(
           Док.Партнер,
           Док.Дата,
           Новый Структура("УчитыватьГруппыСкладов, ВыбранноеСоглашение", Истина, Док.Соглашение)
       );
       
       Если УсловияПродажПоУмолчанию <> Неопределено Тогда
           
           Док.Соглашение = УсловияПродажПоУмолчанию.Соглашение;
           ЗаполнитьУсловияПродаж(УсловияПродажПоУмолчанию, Док);
           
           СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(Док);
           ПродажиСервер.ЗаполнитьЦены(
               Док.Товары,
               , // Массив строк или структура отбора

               Новый Структура( // Параметры заполнения

                   "Дата, Валюта, Соглашение, ПоляЗаполнения",
                   Док.Дата,
                   Док.Валюта,
                   Док.Соглашение,
                   "Цена, СтавкаНДС, ВидЦены, СрокПоставки"
               ),
               Новый Структура( // Структура действий с измененными строками

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

       Ном = ПолучитьСсылкуНаНоменклатуру(Результат);
       СтрДок = Док.Товары.Найти(Ном, "Номенклатура");
       Если СтрДок = Неопределено Тогда
           ДобСтроку = Док.Товары.Добавить();
           ДобСтроку.Номенклатура = Ном;
           ДобСтроку.Цена = Результат.Цена;                          
           ДобСтроку.КоличествоУпаковок = Результат.Количество;
           ДобСтроку.Сумма = ДобСтроку.Цена * ДобСтроку.КоличествоУпаковок;
           ДобСтроку.СтавкаНДС = Ном.СтавкаНДС;
           ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ДобСтроку, СтруктураДействий, КэшированныеЗначения);
       Иначе
           СтрДок.Цена = Результат.Цена;
           СтрДок.КоличествоУпаковок = Результат.Количество;
           ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтрДок, СтруктураДействий, КэшированныеЗначения);
       КонецЕсли;            
   КонецЦикла;
   
   Сообщение = Новый СообщениеПользователю;
   Сообщение.Текст = "Номенклатура заполнена, документы созданы, контрагенты заведены. Время выполнения = " + (ТекущаяДата() - Начало) + " сек.";
   Сообщение.Сообщить();
               
КонецФункции

Функция НайтиКонтрагента(Результат)  // Поиск контрагента
   
    Запрос2 = Новый Запрос;
    Запрос2.Текст =
    "ВЫБРАТЬ
    |    Контрагенты.Ссылка,
    |    Контрагенты.Наименование,
    |    Контрагенты.НаименованиеПолное,
    |    Контрагенты.Партнер,
    |    Контрагенты.КонтактнаяИнформация.(
    |        Представление
    |    )
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    Контрагенты.НаименованиеПолное = &НаименованиеПолное
    |    И Контрагенты.КонтактнаяИнформация.Представление = &Представление
    |    И Контрагенты.Партнер = &Партнер";
    Запрос2.УстановитьПараметр("Партнер", Справочники.Партнеры.НеизвестныйПартнер);
    Запрос2.УстановитьПараметр("НаименованиеПолное", Результат.КонтактноеЛицо);
    Запрос2.УстановитьПараметр("Представление", Результат.Телефон);
    Выборка2 = Запрос2.Выполнить();
    Результат2 = Выборка2.Выбрать();
    Если Выборка2.Пустой() Тогда
       НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
       НовыйКонтрагент.Наименование = Результат.КонтактноеЛицо;   // С БОЛЬШОЙ БУКВЫ
       НовыйКонтрагент.НаименованиеПолное = НовыйКонтрагент.Наименование; //С БОЛЬШОЙ БУКВЫ
       НовыйКонтрагент.Партнер = Справочники.Партнеры.НеизвестныйПартнер;
       НовыйКонтрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
       НовыйКонтрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо;
       
       ДобАдрес = НовыйКонтрагент.КонтактнаяИнформация.Добавить();
       ДобАдрес.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
       ДобАдрес.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
       Если Найти(Результат.АдресДоставки, Результат.ГородДоставки) = 0 Тогда
           ДобАдрес.Представление = "" + Результат.ГородДоставки + ", " + Результат.АдресДоставки;  
       КонецЕсли;
       
       ДобТелефон = НовыйКонтрагент.КонтактнаяИнформация.Добавить();
       ДобТелефон.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
       ДобТелефон.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
       ДобТелефон.Представление = Результат.Телефон;  // ПРОВЕРИТЬ НА ОТСУТСТВИЕ ПРОБЕЛОВ
       //ДобТелефон.НомерТелефонаБезКодов = Элемент.Телефон;
       //ДобТелефон.НомерТелефона = Элемент.Телефон;
       
       НовыйКонтрагент.Записать();
       Возврат НовыйКонтрагент.Ссылка;
   Иначе
       Пока Результат2.Следующий() Цикл
           Возврат Результат2.Ссылка;
       КонецЦикла;
   КонецЕсли;
КонецФункции

Процедура ЗаполнитьУсловияПродаж(Знач УсловияПродаж, Док) Экспорт
   
   Если УсловияПродаж = Неопределено Тогда
       Возврат;
   КонецЕсли;
   
   Док.Валюта = УсловияПродаж.Валюта;
   Док.ХозяйственнаяОперация = УсловияПродаж.ХозяйственнаяОперация;
   
   Если ЗначениеЗаполнено(УсловияПродаж.ГрафикОплаты) Тогда
       Док.ГрафикОплаты = УсловияПродаж.ГрафикОплаты;
   КонецЕсли;
   
   Если ЗначениеЗаполнено(УсловияПродаж.ФормаОплаты) Тогда
       Док.ФормаОплаты = УсловияПродаж.ФормаОплаты;
   КонецЕсли;
   
   Док.НалогообложениеНДС   = УсловияПродаж.НалогообложениеНДС;
   Док.ЦенаВключаетНДС      = УсловияПродаж.ЦенаВключаетНДС;
   
   Если ЗначениеЗаполнено(УсловияПродаж.Организация) И УсловияПродаж.Организация<>Док.Организация Тогда
       Док.Организация = УсловияПродаж.Организация;
       Док.БанковскийСчет = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(Док.Организация);
       Док.Касса = ЗначениеНастроекПовтИсп.ПолучитьКассуОрганизацииПоУмолчанию(Док.Организация, Док.ФормаОплаты);
   КонецЕсли;
   
   Если Не УсловияПродаж.Типовое Тогда
       Если ЗначениеЗаполнено(УсловияПродаж.Контрагент) Тогда
           Док.Контрагент = УсловияПродаж.Контрагент;
       КонецЕсли;
   КонецЕсли;
   
   ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Док.Партнер, Док.Контрагент);
   
   Док.Договор = ПродажиСервер.ПолучитьДоговорПоУмолчанию(
       Док.Договор,
       Док.Партнер,
       Док.Контрагент,
       Док.Организация,
       Док.ХозяйственнаяОперация,
       Док.Валюта,
       Док.Соглашение
   );
   
   ПродажиСервер.ЗаполнитьБанковскиеСчетаПоДоговору(Док.Договор, Док.БанковскийСчет, Док.БанковскийСчетКонтрагента);
   
   Если ЗначениеЗаполнено(УсловияПродаж.Склад) Тогда
       Док.Склад = УсловияПродаж.Склад;
   КонецЕсли;
   
   Если ЗначениеЗаполнено(УсловияПродаж.ГруппаФинансовогоУчета) Тогда
       Док.ГруппаФинансовогоУчета = УсловияПродаж.ГруппаФинансовогоУчета;
   КонецЕсли;
   
   Если ЗначениеЗаполнено(УсловияПродаж.СрокПоставки) Тогда
       ДатаНачала = ?(ЗначениеЗаполнено(Док.Дата), Док.Дата, ТекущаяДата());
       Док.ЖелаемаяДатаОтгрузки = ОбщегоНазначенияУТКлиентСервер.РассчитатьДатуОкончанияПериода(ДатаНачала,Перечисления.Периодичность.День, УсловияПродаж.СрокПоставки) + 1;
   КонецЕсли;
   
КонецПроцедуры
13 Азат
 
27.11.12
03:14
а не дело ли в складе в тч?
14 volfy
 
27.11.12
04:33
Конкретнее? Склад не указывается в ТЧ
15 volfy
 
27.11.12
04:34
Самое странное что после работы обработки документ 100% исправен ( проводится записывается) но как только меняю статус (интерактивно) тут ...ошибончик...
16 Trucker
 
27.11.12
10:23
(14) Ты уверен в этом?
17 volfy
 
27.11.12
13:12
(16) ошибка есть ...может дело не в моем коде...
18 volfy
 
27.11.12
18:20
подниму ветку, время вроде людное на форуме, никто не знает причины ?
19 volfy
 
28.11.12
11:13
Ну что никто не знает изза чего такое может произойти? Может изза старой платформы? (8.15.310)
20 volfy
 
28.11.12
11:43
.....барабанная дровь ...в ТЧ есть реквезит склад который невидим =))
21 ttk
 
28.11.12
12:42
тебе еще в (14) говорили про это
поставь галочку в настройках и будет виден
22 volfy
 
28.11.12
19:53
Чорт =) сам лоханулся
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.