Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Налоговая накладная, 2011 , 1С Предприятие 7.7 2 страниц V   1 2 >          
yfrf111 Подменю пользователя
сообщение 17.02.11, 12:47
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Пожалуста помогите!
Немогу понять, как прописать в модуле, форму накладной. Например, порядковий номер, автоматически заполнялся, или номер телефона. Работоспособный код, как написать? Открыть конфигурацию для Украины с новыми бланками, там обнаружил в клеточках формулы, Сред(НомерДокумента,1,1) …… Сред(ФирмаТелефоны,1,1) как объявить переменные и прописать в модуле, не знаю.(
Да, скажите, да это легко, а вот пока, не знаю как!

Ziam Подменю пользователя
сообщение 17.02.11, 14:14
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0

В модуле формы посмотрите процедуру Печать2011(). Она вроде во всех конфах на 7.7 так называется. Там свои переменные найдете, и как они объявляются и что с ними делают. Плюс сможете разобраться как осуществляется печать документа в 1С 7.7

yfrf111 Подменю пользователя
сообщение 17.02.11, 19:50
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Ziam @ 17.02.11, 15:14) *
В модуле формы посмотрите процедуру Печать2011(). Она вроде во всех конфах на 7.7 так называется. Там свои переменные найдете, и как они объявляются и что с ними делают. Плюс сможете разобраться как осуществляется печать документа в 1С 7.7

Да, это я и знаю, что для Украины, там все есть, с моего вопроса это и так понятно. Там просто, все переменные в куче, что где и как не пойму! (Простой пример, на дате или телефонах был, бы достаточно. А для конфигурации, А4 БТР, не пойму. Самой фирмы А4 уже нет, не у кого спросить! 1С консультация, не смогла помочь, сказала что обратиться к разработчикам.(

Vofka Подменю пользователя
сообщение 17.02.11, 20:00
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3645.4

В модуле формы (скорей всего) ищите переменную НомерДокумента, посмотрите где она устанавливается

Ziam Подменю пользователя
сообщение 18.02.11, 7:35
Сообщение #5

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0

З.Ы, Переменные в 1С объявляются в момент присваивания им какого-нибудь значения.
НомерДокумента = "";

Вот вам пример объявления переменной. Если вас именно эта переменная интересует позже смогу сказать строчку модкля, где она объявляется.

Спасибо сказали: yfrf111,

yfrf111 Подменю пользователя
сообщение 18.02.11, 12:17
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Ziam @ 18.02.11, 8:35) *
З.Ы, Переменные в 1С объявляются в момент присваивания им какого-нибудь значения.
НомерДокумента = "";

Вот вам пример объявления переменной. Если вас именно эта переменная интересует позже смогу сказать строчку модкля, где она объявляется.

Неплохо, полностью работающий код, написать! На примере с датой или телефонами. Я так понимаю, дальше все по аналогии, примера сделано, только менять имена переменых?

Ziam Подменю пользователя
сообщение 18.02.11, 14:16
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0

Чото я запутался, что вам надо.
Вам надо подключить к какой-то базе новую форму НН ?
У вас есть типовая конфа в которой есть эта форма и вы там не можете разобраться как она подключена? Или у вас нет типовой конфы с этой формой? Или у вас есть только макет? (сейчас у меня именно такое чувство. У вас есть макет, но нет кода, который его заполняет).

Ибо фраза
Цитата
Неплохо, полностью работающий код, написать!
мне ни о чем не говорит. Я вам написал полностью работающий код. Можно его в модуль вставлять и он будет работать. Только я так понимаю, он делает не совсем то, что вы хотели. А я до сих пор не могу понять, чего вы хотите.

Спасибо сказали: yfrf111,

alex040269 Подменю пользователя
сообщение 18.02.11, 14:28
Сообщение #8

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(yfrf111 @ 18.02.11, 13:17) *
Неплохо, полностью работающий код, написать! На примере с датой или телефонами. Я так понимаю, дальше все по аналогии, примера сделано, только менять имена переменых?

Например, НомерДокумента должен содержать 10 знаков и віравниваться по правому краю:

НомерДокумента = Прав("          "+НомерДокумента,10);


На форме в каждой клетке:

Сред(НомерДокумента,1,1)
Сред(НомерДокумента,2,1)
Сред(НомерДокумента,3,1)

и т.д.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Спасибо сказали: oleynik, yfrf111,

yfrf111 Подменю пользователя
сообщение 18.02.11, 15:30
Сообщение #9

Говорящий
***
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Ziam @ 18.02.11, 15:16) *
Чото я запутался, что вам надо.
Вам надо подключить к какой-то базе новую форму НН ?
У вас есть типовая конфа в которой есть эта форма и вы там не можете разобраться как она подключена? Или у вас нет типовой конфы с этой формой? Или у вас есть только макет? (сейчас у меня именно такое чувство. У вас есть макет, но нет кода, который его заполняет).

Ибо фраза мне ни о чем не говорит. Я вам написал полностью работающий код. Можно его в модуль вставлять и он будет работать. Только я так понимаю, он делает не совсем то, что вы хотели. А я до сих пор не могу понять, чего вы хотите.

Имено так и есть! Мне надо подключить к какой-то базе, новую форму НН!
У меня есть, типовая конфа в которой есть эта форма, и я там не могу разобраться как она подключена! Половину уже потключил, то что по шаблону, а дальше пошло программированье, Дата, Номер документа, телефоны, и.т.д., то что, должно быть в квардратиках.

Flexy Подменю пользователя
сообщение 18.02.11, 15:43
Сообщение #10

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Так что мешает глянуть как в Типовой заполняется эта форма?
Или вы думаете, что тут все Телепаты и помогут вам прикрутить новую форму НН к вашей НеТиповой Конфе?

yfrf111 Подменю пользователя
сообщение 18.02.11, 15:48
Сообщение #11

Говорящий
***
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(alex040269 @ 18.02.11, 15:28) *
Например, НомерДокумента должен содержать 10 знаков и віравниваться по правому краю:

НомерДокумента = Прав("          "+НомерДокумента,10);


На форме в каждой клетке:

Сред(НомерДокумента,1,1)
Сред(НомерДокумента,2,1)
Сред(НомерДокумента,3,1)

и т.д.

Спасибо, ясней не куда, обьяснили!

yfrf111 Подменю пользователя
сообщение 18.02.11, 17:11
Сообщение #12

Говорящий
***
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(alex040269 @ 18.02.11, 15:28) *
Например, НомерДокумента должен содержать 10 знаков и віравниваться по правому краю:

НомерДокумента = Прав("          "+НомерДокумента,10);


На форме в каждой клетке:

Сред(НомерДокумента,1,1)
Сред(НомерДокумента,2,1)
Сред(НомерДокумента,3,1)

и т.д.

С датой и номером документа, все прошло гладко, застрял на телефонах
Написал ДтФирма = Прав(ДтФирма.Телефон+ДтФирма,10); и в ячейках Прав(ДтФирма.Телефон,1,1) и.т.д В самой один 1С запускаю все что с переменой ДтФирма пропало, и ругаеться Прав(ДтФирма.Телефон,1<<?>>,1) Ожидается символ ')'

Ziam Подменю пользователя
сообщение 18.02.11, 19:03
Сообщение #13

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0

Полный код, пожалуйста. А то мы до Пасхи гадать будем.

Спасибо сказали: yfrf111,

yfrf111 Подменю пользователя
сообщение 18.02.11, 19:22
Сообщение #14

Говорящий
***
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Ziam @ 18.02.11, 20:03) *
Полный код, пожалуйста. А то мы до Пасхи гадать будем.

//***********************
//
Перем фФлагНового;
Перем фФлагПерегрузки;
Перем фТекТовар, фТекЦена, фКол;
Перем фНС1;
// 16/07/2001 ДС
//------------------------------------ ДС 30/05/2001
Функция ВыборВидНДСИзДокОснования(лДокОсн)
    Перем лВидНДС;
    лСписокВидовНДС=СоздатьОбъект("СписокЗначений");
    лПоз=0;
    лДокОсн.ВыбратьСтроки();
    Пока лДокОсн.ПолучитьСтроку()=1 Цикл
        Если лДокОсн.Вид()="ПриходнаяНакладная" Тогда
            // Приходная накладная услуги обрабатываем "своим" образом       ДС 05/06/2001
            Если лДокОсн.Товар.ВидТовара=Перечисление.Неамортизируемые.Услуга Тогда
                Если лДокОсн.Производитель<>лДокОсн.ДтКлиент Тогда
                    Продолжить;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
        Если лСписокВидовНДС.НайтиЗначение(лДокОсн.ВидНДСвСтроке)=0 Тогда
            лСписокВидовНДС.ДобавитьЗначение(лДокОсн.ВидНДСвСтроке);
        КонецЕсли;
    КонецЦикла;
    Если лСписокВидовНДС.РазмерСписка()=0 Тогда
        Предупреждение("Немає товарів, на які виписуються Податкові Накладні");
        Возврат ПолучитьПустоеЗначение("Справочник.СтавкиНДС");
    ИначеЕсли лСписокВидовНДС.РазмерСписка()=1 Тогда
        лВидНДС=лСписокВидовНДС.ПолучитьЗначение(1);
    Иначе
        Если лСписокВидовНДС.ВыбратьЗначение(лВидНДС,"Вибір ставки ПДВ, по якій виписується Податкова Накладна:",лПоз,0)=0 Тогда
            Возврат ПолучитьПустоеЗначение("Справочник.СтавкиНДС");
        КонецЕсли;
    КонецЕсли;
    Возврат лВидНДС;
КонецФункции
//-----------------------------------
Процедура УстановкаСуммы(УстНДС=1)
    Если УстНДС=1 Тогда
        НДСпоДокументу = (Итог("ПродСумма")+Реквизит4-Реквизит5+Реквизит1) * ВидНДС.ТарифНДС/100;
    КонецЕсли;
    СуммаПоДокументу=Итог("ПродСумма")+НДСПоДокументу+ННРПоДокументу+Реквизит4-Реквизит5+Реквизит1;            
КонецПроцедуры
// ---------------------------------- 17/07/2001 ДС
Процедура РасчетННР()
    ННРПоДокументу=ОКР(Итог("ПродСумма")*ВидННР.ТарифНДС/100,2);
    УстановкаСуммы(0);
КонецПроцедуры
//-----------------------------------AP 11/02/2000. Док основание.
Процедура УстДокОснование()    //для выбора документа-основания
    лДок=СоздатьОбъект("Документ");
    Если лДок.Выбрать("Вибір видаткової накладної",)=1  Тогда
        ДокументОснование=лДок.ТекущийДокумент();
    КонецЕсли;
КонецПроцедуры
//-----------------------------------
Процедура ПриВыбореЗакладки(Ном,Значен)
    Если Значен=1 Тогда
        Форма.ИспользоватьСлой("Основной, Кнопки",2);
    ИначеЕсли Значен=2 Тогда
        Форма.ИспользоватьСлой("ТабличнаяЧасть, Кнопки",2);    
    ИначеЕсли Значен=3 Тогда
        Форма.ИспользоватьСлой("ЗаПериод, Кнопки",2);
    КонецЕсли;
КонецПроцедуры
//-----------------------------------
Процедура ПересчетСуммы()
    ПродСумма=Окр(ПродЦена*Количество,2); //AP 24/05/00
КонецПроцедуры
//-----------------------------------
Процедура ДопВыбТовараРасход()
    Если Товар.Выбран()=0 Тогда //03/08/2000 OG
        Возврат;
    КонецЕсли;
    Единица=Товар.БазоваяЕдиница;
    Коэффициент=1;
    КодТовара=Товар.Код;
    ДтНаправление=Товар.Направление;
КонецПроцедуры

//-----------------------------------
Процедура Печать()    
    
    Перем лТабл;
    Перем УсловияПродажи;
          НомерДокумента = Прав(НомерДок+НомерДокумента,7);
          ДтФирма = Прав(ДтФирма.Телефон+ДтФирма,10);

    Если  Итог("Количество")=0 Тогда
        Предупреждение("Невірно, або взагалі не задані рядки. К-сть невідома. Друкувати неможливо!");
        Возврат;
    КонецЕсли;
    Если ПустоеЗначение (Содержание1)=0 Тогда    
        УсловияПродажи=Содержание1;
    Иначе    
        УсловияПродажи=ДокДоговор;
    КонецЕсли;
    
    лТаб=СоздатьОбъект("Таблица");
    //AG+IK 01.08.05
    Если ДатаДок < Дата('29.07.2005') Тогда
        //******было
        Если ФС.СуществуетФайл(СокрЛП(КаталогБазыДанных())+"Forms\"+"rnn.mxl")=1 Тогда
            лТаб.ИсходнаяТаблица(СокрЛП(КаталогБазыДанных())+"Forms\"+"rnn.mxl");
        Иначе
        //******было
            лТаб.ИсходнаяТаблица("Таблица");
        КонецЕсли;
    Иначе
        Если ФС.СуществуетФайл(СокрЛП(КаталогБазыДанных())+"Forms\"+"rnn2.mxl")=1 Тогда
            лТаб.ИсходнаяТаблица(СокрЛП(КаталогБазыДанных())+"Forms\"+"rnn2.mxl");
        Иначе
            лТаб.ИсходнаяТаблица("Таблица2");
        КонецЕсли;
    КонецЕсли;
    //AG+IK 01.08.05
    лТаб.ПараметрыСтраницы(1,,,0,0,0,0,,,,1);
    лТаб.ВывестиСекцию("Заголовок");
    //формирование шапки
    лТаб.ВывестиСекцию("Шапка");
    лТаб.ВывестиСекцию("Шапка1");
    //лСтавПММ=Константа.СтавкаГСМ.Ставка.Получить(ДатаДок);
    ВыгрузитьТабличнуюЧасть(лТабл);
    лТабл.Свернуть("ДатаНДС,Товар,Единица","Количество,ПродСумма");
    лНС=1;
    //Перем по разделу 1
    лА1=0;лА2=0;лА3=0;лА4=0;
    //Итоги по разделу 1 и накопительная переменная
    лБ1=0;лБ2=0;лБ3=0;лБ4=0; лБ=0;
    //Перем по разделу 2
    лВ1=0;лВ2=0;лВ3=0;лВ4=0;лВ5=0;
    //НДС
    лГ1=0;лГ2=0;лГ3=0;лГ4=0;лГ5=0;
    //Наценка
    лН1=0;лН2=0;лН3=0;лН4=0;
    //Скидка
    лЗ1=0;лЗ2=0;лЗ3=0;лЗ4=0;
    лР="I";
    лТабл.ВыбратьСтроки();
    Пока лТабл.ПолучитьСтроку()=1 Цикл
        лЦена=лТабл.ПродСумма/лТабл.Количество;
        Если ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ОсновнаяСтавкаНДС Тогда
            лА1=лТабл.ПродСумма;
        ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ЛьготнаяСтавкаНДС Тогда
            лА2=лТабл.ПродСумма;  
        ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ЭкспортнаяСтавкаНДС Тогда
            лА3=лТабл.ПродСумма;
        ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.БезНДС Тогда
            лА4=лТабл.ПродСумма;
        КонецЕсли;
        лБ=лБ+лА1+лА2+лА3+лА4;
        лТаб.ВывестиСекцию("Строка");
        лР=" ";
    КонецЦикла;
    лВ6=Итог("ПродСумма");
    Если ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ОсновнаяСтавкаНДС Тогда
        лБ1=лВ6;
        лГ1 = НДСпоДокументу;
        лН1=Реквизит4;
        лЗ1=Реквизит5;
    ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ЛьготнаяСтавкаНДС Тогда
        лБ2=лВ6;
        лГ2=НДСпоДокументу;
        лН2=Реквизит4;
        лЗ2=Реквизит5;
    ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ЭкспортнаяСтавкаНДС Тогда
        лБ3=лВ6;
        лГ3=НДСпоДокументу;
        лН3=Реквизит4;
        лЗ3=Реквизит5;
    ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.БезНДС Тогда
        лБ4=лВ6;
        лН4=Реквизит4;
        лЗ4=Реквизит5;
    КонецЕсли;                  
    лТаб.ВывестиСекцию("Итог"); //итог по разделу 1
    лВ1=Реквизит1;
    лВ5=лВ1;
    лТаб.ВывестиСекцию("Строка3"); //тара      
    лН5=Формат((лН1+лН2+лН3+лН4),"N10.2");
    лЗ5=Формат((лЗ1+лЗ2+лЗ3+лЗ4),"N10.2");
    лВ6=лВ6+лВ5+лН5-лЗ5;
    //строка итогов НДС
    лГ5=лГ1+лГ2+лГ3+лГ4;
    лТаб.ВывестиСекцию("Строка6");
    //строка общих итогов
    лТаб.ВывестиСекцию("Строка7");
    Если ННРПоДокументу<>0 Тогда    // 20.06.01 ВП
        лТаб.ВывестиСекцию("ТекстНалогаНаРекламу");        
    КонецЕсли;    
    лТаб.ВывестиСекцию("Финиш");
    лТаб.Опции(0,1,0,0);
    лТаб.ПараметрыСтраницы(1,,,5,5,5,5,,,1,,);
    лТаб.ТолькоПросмотр(1);
    лТаб.Показать("Податкова накладна","");
КонецПроцедуры
//-----------------------------------
Процедура ВводНового(ПризнакКопирования,ОбъектКопирования)
    Если РазрешитьВводНового()=0 Тогда    // 15.06.01 ВП
        Возврат;
    КонецЕсли;
    фФлагНового=1;
    Если ПризнакКопирования=1 Тогда
        Если ПроверкаОткрытияДокумента(0,СокрЛП(ОбъектКопирования.АвторДокумента))=0 Тогда
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
        ДатаДок=РабочаяДата();
        АвторДокумента=гПользователь.ПолноеИмя;  // 07/09/2001 ДС
        АвторИзменения="";
    Иначе
        ЗаполнитьШапку(Контекст,1,Перечисление.ВидыДокументов.НалоговаяНакладнаяРасходна
я,"");
        ДокВалюта=Константа.ОснВалютаПродаж;
    КонецЕсли;
    УстФирмы(Контекст,1);
    УстКурса(Контекст,1); //АП 19.04.2001
КонецПроцедуры
//----------------------//04/08/2000 OG
Процедура ПриРедактированииНовойСтроки()
    ВыбВидСправочника(Контекст,"Товары,Имущество");
    ДопВыбТовараРасход();    // 19.09.00 ВП - иначе эта функция вообще не отработает    
КонецПроцедуры
//-----------------------------------
Процедура ПриНачалеРедактированияСтроки();
    // 19.09.00 ВП - из-за побочных эффектов //ВыбВидСправочника(Контекст,"Товары,Имущество");//04/08/2000 OG    
    ВыгрузитьТабличнуюЧасть(гТабл);    //запоминание реквизитов строки (до редактирования)
КонецПроцедуры
//-----------------------------------
Процедура ПриОкончанииРедактированияСтроки()
    УстановкаСуммы();    
КонецПроцедуры            
//-----------------------------------
Процедура ПриВводеСтроки()
    ВыгрузитьТабличнуюЧасть(гТабл);    //запоминание реквизитов строки (до редактирования)
КонецПроцедуры
//-----------------------------------
Процедура ВводНаОсновании(ДокОснование)
Перем лДатаНДС;
    Если РазрешитьВводНового()=0 Тогда    // 15.06.01 ВП
        Возврат;
    КонецЕсли;
    ФФлагНового=1;
    Форма.Закладки.Сортировать(0);
    ПриВыбореЗакладки(,1);
    ДатаДок=ДокОснование.ДатаДок;
    ДтФирма=ДокОснование.ДтФирма;
    ДтФирма.ИспользоватьДату(ДатаДок);
    УстФирмы(Контекст,1);
    ДтКлиент=ДокОснование.ДтКлиент;
    ДокДоговор=ДокОснование.ДокДоговор;
    ДокВалюта=ДокОснование.ДокВалюта;
    ДокВалюта.ИспользоватьДату(ДатаДок);
    УстКурса(Контекст,1);
    ЗаполнитьШапку(Контекст,1,Перечисление.ВидыДокументов.НалоговаяНакладнаяРасходна
я,"");
    УстМетки(Контекст);
    ДокументОснование=ДокОснование;
    лДатаНДС=ДокОснование.ДатаДок;
    Если (ДокОснование.Вид()="СчетПокупателю") Тогда
        фДок=СоздатьОбъект("Документ");
        фДок.ВыбратьПодчиненныеДокументы(,,ДокОснование);
        Пока фДок.ПолучитьДокумент()=1 Цикл
            Если ((фДок.Вид()="ПриходДенегНаСчет") ИЛИ
                  (фДок.Вид()="РасходнаяНакладная") ИЛИ
                   (фДок.Вид()="СводнаяРасходнаяНакладная")) Тогда
                лДатаНДС=фДок.ДатаДок;
                Прервать;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    Если ((ДокОснование.Вид()="СчетПокупателю") ИЛИ
         (ДокОснование.Вид()="РасходнаяНакладная") ИЛИ
         (ДокОснование.Вид()="СводнаяРасходнаяНакладная"))
         Тогда
        ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
        Если ПустоеЗначение(ВидНДС)=1 Тогда
            Возврат;
        КонецЕсли;
        Содержание2=ДокОснование.Содержание1;
        ДтПодразделение=ДокОснование.ДтПодразделение;
        ДтМОЛ=ДокОснование.ДтМОЛ;
        
        Если (ДокОснование.Вид()="СчетПокупателю") Тогда
            ВидННР=ДокОснование.ВидННР;
            ННРПоДокументу=ДокОснование.ННРПоДокументу;
        Иначе
            ННРПоДокументу=0;
        КонецЕсли;
        
        Реквизит1=ДокОснование.СуммаТранспорта;
        ФормаРасчетов=ДокОснование.ФормаРасчетов;
        
        ДокОснование.ВыбратьСтроки();    
        Пока ДокОснование.ПолучитьСтроку()=1 Цикл
            Если Не(ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
                Продолжить;
            КонецЕсли;
            НоваяСтрока();
            Товар=ДокОснование.Товар;
            КодТовара=Товар.Код;
            Количество=ДокОснование.Количество;
            ДтНаправление=ДокОснование.ДтНаправление;
            Единица=ДокОснование.Единица.Единица;
            Коэффициент=ДокОснование.Коэффициент;    
            // 24/07/2001 ДС Если (Константа.УчетСкидки = Перечисление.Булево.Да) Тогда
                Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
                    ПродСумма=ДокОснование.ПродСумма*100/(100+ВидНДС.ТарифНДС);
                Иначе
                    ПродСумма=ДокОснование.ПродСумма;
                КонецЕсли;    
                ПродЦена=ПродСумма/Количество;
            // 24/07/2001 ДС КонецЕсли;
            
            ДатаНДС=лДатаНДС;
        КонецЦикла;
    ИначеЕсли ((ДокОснование.Вид()="РасходнаяНакладнаяЭкспорт") ИЛИ
               (ДокОснование.Вид()="АктВыполненныхРабот") ИЛИ
               (ДокОснование.Вид()="СводныйСчетПокупателю") ИЛИ
               (ДокОснование.Вид()="СчетРасписка")) Тогда
        ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
        Если ПустоеЗначение(ВидНДС)=1 Тогда
            Возврат;
        КонецЕсли;
        
        Если (ДокОснование.Вид()="СчетРасписка") Тогда
            Содержание2=ДокОснование.Содержание1;
        КонецЕсли;
        
        ДтПодразделение=ДокОснование.ДтПодразделение;
        ДтМОЛ=ДокОснование.ДтМОЛ;
        
        Если (ДокОснование.Вид()="АктВыполненныхРабот") Тогда
            ВидННР=ДокОснование.ВидННР;
            ННРПоДокументу=ДокОснование.ННРПоДокументу;
        КонецЕсли;
        
        Если Метаданные.Документ(ДокОснование.Вид()).РеквизитШапки("СуммаТранспорта").Выбран()=1 Тогда
            Реквизит1=ДокОснование.СуммаТранспорта;
        КонецЕсли;
        
        Если Метаданные.Документ(ДокОснование.Вид()).РеквизитШапки("ФормаРасчетов").Выбран()=1 Тогда
            ФормаРасчетов=ДокОснование.ФормаРасчетов;
        КонецЕсли;
        
        ДокОснование.ВыбратьСтроки();    
        Пока ДокОснование.ПолучитьСтроку()=1 Цикл
            Если Не(ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
                Продолжить;
            КонецЕсли;
            НоваяСтрока();
            Товар=ДокОснование.Товар;
            КодТовара=Товар.Код;
            Количество=ДокОснование.Количество;
            ДтНаправление=ДокОснование.ДтНаправление;
            Единица=ДокОснование.Единица.Единица;
            Коэффициент=ДокОснование.Коэффициент;    
            Если (ДокОснование.Вид() = "СводныйСчетПокупателю") И
                 (Константа.УчетСкидки = Перечисление.Булево.Да) Тогда  
                Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
                    ПродСумма=(ДокОснование.ПродЦена1*ДокОснование.Количество)*100/(100+ДокОснование.ВидНДСвСтроке.ТарифНДС);
                Иначе
                    ПродСумма=(ДокОснование.ПродЦена1*ДокОснование.Количество);
                КонецЕсли;    
                ПродЦена=ПродСумма/Количество;
            ИначеЕсли (ДокОснование.Вид() = "РасходнаяНакладнаяЭкспорт") Тогда
                Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
                    ПродСумма=(ДокОснование.ПродСумма-НДСвСтроке)*ДокОснование.КурсДокументаБаз;
                    ПродЦена=ПродСумма/Количество*ДокОснование.КурсДокументаБаз;
                Иначе
                    ПродЦена=ДокОснование.ПродЦена*ДокОснование.КурсДокументаБаз;
                    ПродСумма=ДокОснование.ПродСумма*ДокОснование.КурсДокументаБаз;
                КонецЕсли;
            Иначе
                Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
                    ПродСумма=(ДокОснование.ПродСумма-НДСвСтроке);
                    ПродЦена=ПродСумма/Количество;
                Иначе
                    ПродЦена=ДокОснование.ПродЦена;
                    ПродСумма=ДокОснование.ПродСумма;
                КонецЕсли;
            КонецЕсли;
            ДатаНДС=лДатаНДС;
        КонецЦикла;
    ИначеЕсли ДокОснование.Вид()="АктСписанияИмущества" Тогда
        ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
        Если ПустоеЗначение(ВидНДС)=1 Тогда
            Возврат;
        КонецЕсли;
        
        ДтПодразделение=ДокОснование.ДтПодразделение;
        ДтМОЛ=ДокОснование.ДтМОЛ;
        
        ДокОснование.ВыбратьСтроки();    
        Пока ДокОснование.ПолучитьСтроку()=1 Цикл
            Если Не(ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
                Продолжить;
            КонецЕсли;
            НоваяСтрока();
            Товар=ДокОснование.Имущество;
            КодТовара=Товар.Код;
            Количество=ДокОснование.Количество;
            Дтнаправление=Товар.Направление;
            Единица=Товар.БазоваяЕдиница;
            Коэффициент=1;
            ПродЦена=ДокОснование.ПродЦена1;   //28/10/99 OG
            ПродСумма=ДокОснование.ПродСумма1;
            ДатаНДС=лДатаНДС;
        КонецЦикла;
    ИначеЕсли ДокОснование.Вид() = "РасходИзРозницы" Тогда
        ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
        Если ПустоеЗначение(ВидНДС)=1 Тогда
            Возврат;
        КонецЕсли;
        
        ДтПодразделение=ДокОснование.ДтПодразделение;
        ДтМОЛ=ДокОснование.ДтМОЛ;
        
        ДокОснование.ВыбратьСтроки();
        Пока ДокОснование.ПолучитьСтроку()=1 Цикл
            Если Не(ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
                Продолжить;
            КонецЕсли;
            НоваяСтрока();
            Товар=ДокОснование.Товар;
            КодТовара=Товар.Код;
            Количество=ДокОснование.Количество;
            ДтНаправление=ДокОснование.ДтНаправление;
            Единица=ДокОснование.Единица.Единица;
            Коэффициент=ДокОснование.Коэффициент;
            ПродСумма=ДокОснование.СебСуммаАльт - ДокОснование.НДСвСтроке;
            ПродЦена=ПродСумма/Количество;            
            ДатаНДС=лДатаНДС;            
        КонецЦикла;
    ИначеЕсли ДокОснование.Вид()="ПриходДенегНаСчет" Тогда    // 24/07/2001 ДС
        ФормаРасчетов = ДокОснование.ФормаРасчетов;
        Содержание2 = ДокОснование.Содержание1;
        
        НоваяСтрока();
        ДатаНДС=лДатаНДС;
        Товар = Константа.ТоварПоУмолчаниюДляНН;
        КодТовара = Товар.Код;        
        Количество = 1;
        Единица = Перечисление.ЕдиницыИзмерения.Штука;
        Коэффициент = 1;
        Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСнаСумму Тогда
            ПродЦена = ДокОснование.СуммаПоДокументу-ДокОснование.НДСпоДокументу-ДокОснование.ННРПоДокументу;
        Иначе
            ПродЦена = ДокОснование.СуммаПоДокументу-ДокОснование.ННРПоДокументу;
        КонецЕсли;
        ПродСумма =ПродЦена;
        ВидНДС=ДокОснование.ВидНДС;
        НДСПоДокументу=ДокОснование.НДСпоДокументу;
        ВидННР=ДокОснование.ВидННР;
        ННРПоДокументу=ДокОснование.ННРПоДокументу;
        ДокОснование.ВыбратьСтроки();
        Пока ДокОснование.ПолучитьСтроку() = 1 Цикл
            ДтНаправление = ДокОснование.ДтНаправление;
            Прервать;
        КонецЦикла;
    КонецЕсли;        
    
    Если Метаданные.Документ(ДокОснование.Вид()).РеквизитШапки("СкидкаПоСтроке").Выбран()=1 Тогда    
        лСуммаСкидки = ДокОснование.СкидкаПоСтроке;
        Если лСуммаСкидки > 0 Тогда
            Реквизит5 = лСуммаСкидки;
        Иначе
            Реквизит4 = -лСуммаСкидки;    // 22.05.01 ВП - знак меняется
        КонецЕсли;
    КонецЕсли;
    УстановкаСуммы();
КонецПроцедуры
//-----------------------------------
Процедура ПриОткрытии()
    лФлагПриоритет=ПроверкаОткрытияДокумента(фФлагНового,СокрЛП(АвторДокумента));
    Если  лФлагПриоритет=0 Тогда //HP 17/12/99 нельзя открывать (нет доступа)
        СтатусВозврата(0);
        Возврат;
    ИначеЕсли  лФлагПриоритет=1 Тогда //HP 17/12/99 можно просматривать (ограничение доступа)
        Форма.ТолькоПросмотр(1);
        Форма.кнОК.Доступность(0);
    КонецЕсли;
    
    //окрывает документ д/просмотра или редактирования
    //устанавливает закладку шапки(если документ новый) или таблицу(если старый)
    Если ПустоеЗначение(гОткрытыйДокумент)=0 Тогда
        //уже есть открытые документы, существующий документ открывается для просмотра
        Предупреждение("Документ відкрито тільки для перегляду!");
        Форма.ТолькоПросмотр(1);
        Форма.кнОК.Доступность(0);
    Иначе
        //документ открывается для ввода/редактирования, все глоб переменные уст только для него!
        гОткрытыйДокумент=ВзятьКонтекст(Контекст);    // 15.06.01 ВП
    КонецЕсли;
    
    Если фФлагНового=0 Тогда
        Форма.Закладки.ТекущаяСтрока(2);
        ПриВыбореЗакладки(,2);
    Иначе
        Форма.Закладки.ТекущаяСтрока(1);
        ПриВыбореЗакладки(,1);
    КонецЕсли;
    ПриЗаписиПерепроводить(1);
    //при открытии сразу загенерим список
    СотрудникиПодразделения(ДтПодразделение,фСписокМОЛ);
    Если ДтМОЛ.Выбран()=1 Тогда
        //если ДтМОЛ уже есть, то установим курсор списка на него
        фСписокМОЛ.ТекущаяСтрока(фСписокМОЛ.НайтиЗначение(ДтМОЛ));
    Иначе
        //если ДтМОЛ нет, то установим курсор списка на первый и сразу установим ДтМОЛ
        Если фСписокМОЛ.РазмерСписка()>0 Тогда
            фСписокМОЛ.ТекущаяСтрока(1);
            ДтМОЛ=фСписокМОЛ.ПолучитьЗначение(фСписокМОЛ.ТекущаяСтрока());
        КонецЕсли;
    КонецЕсли;
    Если ННРПоДокументу=0 Тогда
        лЕстьРеклама=Перечисление.Булево.Нет;
    Иначе
        лЕстьРеклама=Перечисление.Булево.Да;
    КонецЕсли;
КонецПроцедуры
//-----------------------------------АП
Процедура Пошел()
    лДатаТа=ПолучитьДатуТа();
    Если ДатаКон>=лДатаТа Тогда
        ДатаКон=лДатаТа;        
    КонецЕсли;
    Если ПустоеЗначение(ВидНДС)=1 Тогда
        Предупреждение("Виберіть ставку ПДВ по якій необхідно виписувати документ!");
        Возврат;
    КонецЕсли;
    лЗапрос=СоздатьОбъект("Запрос");
    лТекстЗапроса="Период с ДатаНач по ДатаКон;
    |Фирма=Регистр.УпрТовар.Фирма;
    |Метка=Регистр.УпрТовар.Метка;
    |Товар=Регистр.УпрТовар.Товар;
    |Клиент=Регистр.УпрТовар.Клиент;
    |Док=Регистр.УпрТовар.ТекущийДокумент;
    |Подразделение=Регистр.УпрТовар.Подразделение;
    |Норм=Регистр.УпрТовар.НормСтоимостьБаз;
    |Прод=Регистр.УпрТовар.ПродСтоимостьБаз;
    |Количество=Регистр.УпрТовар.Количество;
    |Группировка Док;
    |Группировка Товар Без Групп;
    |Функция Ф2=Расход(Прод);
    |Функция Ф20=Расход(Количество) Когда (Количество<>0);
    |Условие (Фирма=ДтФирма);
    |Условие (Клиент=ДтКлиент);";
    
    Если лЗапрос.Выполнить(лТекстЗапроса)=0 Тогда
        Возврат;
    КонецЕсли;
    Пока лЗапрос.Группировка("Док")=1 Цикл
        Пока лЗапрос.Группировка("Товар")=1 Цикл
            Если ПустоеЗначение(лЗапрос.Товар)=1 Тогда
                Продолжить;
            КонецЕсли;
            Если Не (ВидНДС=лЗапрос.Товар.НДС) Тогда
                Продолжить;
            КонецЕсли;
            НоваяСтрока();
            Товар=лЗапрос.Товар;
            КодТовара=Товар.Код;
            Количество=лЗапрос.Количество;
            ДтНаправление=Товар.Направление;
            Единица=Товар.БазоваяЕдиница;
            Коэффициент=1;
            ПродЦена=Окр(лЗапрос.Ф2*100/(100+ВидНДС.ТарифНДС)/лЗапрос.Ф20, Константа.ОкруглятьДо);
            ПродСумма=Окр(лЗапрос.Ф2*100/(100+ВидНДС.ТарифНДС), Константа.ОкруглятьДо);
            ДатаНДС=лЗапрос.Док.ДатаДок;
        КонецЦикла;
    КонецЦикла;
    УстановкаСуммы();
КонецПроцедуры

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

//-----------------------------------
Форма.Товар.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.ПродЦена.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение(1,"Шапка");
Форма.Закладки.ДобавитьЗначение(2,"Таблична частина");
Форма.Закладки.ДобавитьЗначение(3,"За період");
ДтФирма.ИспользоватьДату(ДатаДок);
фФлагНового=0;

5_kopeek Подменю пользователя
сообщение 19.02.11, 0:46
Сообщение #15

Ветеран
*******
Женщине-одинэснику
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0

Почему
ДтФирма = Прав(ДтФирма.Телефон+ДтФирма,10);

Насколько я понимаю, ДтФирма -- это фирма, зачем ее прибавлять к номеру телефона? Попробуйте так
ТелФирмы = Прав(ДтФирма.Телефон,10);

А на это
Прав(ДтФирма.Телефон,1<<?>>,1)

правильно ругается: функция Прав имеет 2 параметра (в отличие от функции Сред), а Вы ей даете 3 параметра. Попробуйте так
Сред(ТелФирмы,1,1)
Сред(ТелФирмы,2,1)
Сред(ТелФирмы,3,1)

и т.д.

Спасибо сказали: yfrf111,

yfrf111 Подменю пользователя
сообщение 19.02.11, 12:10
Сообщение #16

Говорящий
***
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(5_kopeek @ 19.02.11, 1:46) *
Почему
ДтФирма = Прав(ДтФирма.Телефон+ДтФирма,10);

Насколько я понимаю, ДтФирма -- это фирма, зачем ее прибавлять к номеру телефона? Попробуйте так
ТелФирмы = Прав(ДтФирма.Телефон,10);

А на это
Прав(ДтФирма.Телефон,1<<?>>,1)

правильно ругается: функция Прав имеет 2 параметра (в отличие от функции Сред), а Вы ей даете 3 параметра. Попробуйте так
Сред(ТелФирмы,1,1)
Сред(ТелФирмы,2,1)
Сред(ТелФирмы,3,1)

и т.д.

Ошибок в 1С нет, но и не работает, не высвечивает телефон! Ваш вариант, неверен.

5_kopeek Подменю пользователя
сообщение 19.02.11, 12:24
Сообщение #17

Ветеран
*******
Женщине-одинэснику
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0

Цитата(yfrf111 @ 19.02.11, 13:10) *
Ошибок в 1С нет, но и не работает, не высвечивает телефон! Ваш вариант, неверен.

Вставьте после ТелФирмы = ... строку
Сообщить("Тел фирмы ="+ТелФирмы+"=");

и скажите, что напишет при формировании печатной формы.

yfrf111 Подменю пользователя
сообщение 19.02.11, 21:31
Сообщение #18

Говорящий
***
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(5_kopeek @ 19.02.11, 13:24) *
Вставьте после ТелФирмы = ... строку
Сообщить("Тел фирмы ="+ТелФирмы+"=");

и скажите, что напишет при формировании печатной формы.

ТелФирмы = Сообщить<<?>>("Тел фирмы ="+ТелФирмы+"=");
{Документ.НалоговаяНакладнаяРасходная.Форма.Модуль(89)}: Процедура вызывается как функция (Сообщить)

logist Подменю пользователя
сообщение 19.02.11, 21:45
Сообщение #19

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(yfrf111 @ 19.02.11, 21:31) *
ТелФирмы = Сообщить<<?>>("Тел фирмы ="+ТелФирмы+"=");
{Документ.НалоговаяНакладнаяРасходная.Форма.Модуль(89)}: Процедура вызывается как функция (Сообщить)

Напишите просто
Сообщить("Тел фирмы ="+ТелФирмы+"=");

"ТелФирмы =" не надо.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: yfrf111,

5_kopeek Подменю пользователя
сообщение 19.02.11, 21:48
Сообщение #20

Ветеран
*******
Женщине-одинэснику
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0

Вы не правильно трактовали мою просьбу (каюсь, надо было подробно писать). Следовало писать так:
ТелФирмы = Прав(ДтФирма.Телефон,10);
Сообщить("Тел фирмы ="+ТелФирмы+"=");

Исправьте и сообщите, что напишет.

Спасибо сказали: yfrf111,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Тема закрыта Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 23.05.24, 15:34
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!