Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прихідна накладна
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
SeraArej
Доброго дна, мені необхідна допомога по прихідній накладній.Користуюся 1С:Предпріятеем 7.7 с ключр=ом на 5 машин под СКЛ сервер. Проблема заключається в тому, що мені необхідно добавити в форму ввведення нових ПН вибір РахункуПДВ ну і відповідно виправити в коді діні зміни щоб зміни відображалися в проводці. Я добавив в Додаткову Форму ПН поле для вводу Рахунку НДС (відповідно в свойствах заповнив необхідні поля, задав тип поля вводу та формулу) Но ось в коді мені неполучаеться внести зміни, як я зрозумів їх необхідно внести сюди: (частина коду)




Иначе
// сумма погашения аванса не должна превышать сумму отгрузки
СуммаПогашенияАвансаПеревозчика = Мин(СуммаОПеревозчика, Итог("ПеревозкаВал"));
// сумму погашения аванса в гривнях рассчитываем по курсу аванса (стандарт 21)
КурсПогашенияАвансаПеревозчика = ?(СуммаОПеревозчика=0,0,СуммаГрнОПеревозчика/СуммаОПеревозчика);
СуммаПогашенияАвансаПеревозчикаГрн = СуммаПогашенияАвансаПеревозчика*КурсПогашенияАвансаПеревозчика;
// для расчета себестоимости по курсу аванса понадобится:
ОбщаяСтоимостьПеревозки = СуммаПогашенияАвансаПеревозчикаГрн + СуммаПервоеСобытиеПеревозчикаГрн;
КонецЕсли;
КонецЕсли;

Если (глВыделятьЛиАвансыПоСчету(СчетТаможни) = 1)
и (ВидТорговли <> Перечисление.ВидыТорговли.Нал) Тогда
// сумма погашения аванса не должна превышать сумму отгрузки
СуммаПогашенияАвансаТаможни = Мин(СуммаОТаможни,
Итог("ТаможенныеУслуги") + Итог("Пошлина")
+ Итог("Акциз") + Итог("НДС") + ДопНДС);
КонецЕсли;

СчетНДС = СчетПоКоду("64.1.5");//(Тут я думаю необхідно зробити процедуру якаб приймала рахунок ПДВ с поля вводу в додатковій формі)
СубконтоНДС1 = ВидНДС;
СубконтоНДС2 = 0;

Если (Константа.НДСпоВходящимНН = Да) и (Валюта = Гривня) Тогда
// проводку по налоговому кредиту сделаем в
// документе ЗаписьКнигиПриобретения
СчетНДС = СчетПоКоду("64.4.2");
СубконтоНДС1 = Контрагент;
СубконтоНДС2 = ПервыйДок;
КонецЕсли;
ИтДопНДСПоСтроке = 0;
ИтСуммаБезНДСВал = Итог("СуммаБезНДСВал");

// получим субконто для таможенной пошлины
глПолучитьНиО(СубконтоПошлина,"Пошлина","о таможенной пошлине");
КонецПроцедуры

// ===============================
Процедура ПроводкиШапка()
Если ЧтоПриходуем = Перечисление.ЧтоПриходуем.ТМЦ Тогда
Если СубконтоВалРасх <> Константа.НиДоходНиРасход Тогда



Я не сильон в програміванні 1С тому розраховую на вашу допомогу.
Batchir
1. Укажите конфигурацию и номер релиза.
2. Уточните как добавили реквизит: как реквизит документа или просто выложили на форму поле для ввода?

Что нужно сделать:
0. Это должен быть реквизит документа.
1. В процедурах создания документа добавить автоматическое заполнение данного реквизита значением по умолчанию
Например, <ВашРеквизит> = СчетПоКоду("64.1.5");
2. Перед проведением документа поставить проверку на заполненность реквизита
3. В процедуре проведения сделать:
СчетНДС = <ВашРеквизит>;
SeraArej
Цитата(Batchir @ 16.03.10, 10:27) необходимо зарегистрироваться для просмотра ссылки
1. Укажите конфигурацию и номер релиза.
2. Уточните как добавили реквизит: как реквизит документа или просто выложили на форму поле для ввода?

Что нужно сделать:
0. Это должен быть реквизит документа.
1. В процедурах создания документа добавить автоматическое заполнение данного реквизита значением по умолчанию
Например, <ВашРеквизит> = СчетПоКоду("64.1.5");
2. Перед проведением документа поставить проверку на заполненность реквизита
3. В процедуре проведения сделать:
СчетНДС = <ВашРеквизит>;


Дякую зараз виправлю. Дійсно я забув за добавлення реквизиту и просто добавив його в поле для вводу, зараз виправим. А на рахунок конфігурації - "Бух. учот" для Украини (7,70,259)
SeraArej
Цитата(Batchir @ 16.03.10, 10:27) необходимо зарегистрироваться для просмотра ссылки
1. В процедурах создания документа добавить автоматическое заполнение данного реквизита значением по умолчанию
Например, <ВашРеквизит> = СчетПоКоду("64.1.5");
2. Перед проведением документа поставить проверку на заполненность реквизита


Реквізит создав, в форме також добавив поле для вводу. Тепер необхідно зробити пункт 1. - хотілось би запитати так щоб я н блудив во всьому коду де ця процедура для створення документа.(наперед прийміть вибачення так як я вже казав що тільки вчесь в програмування 1С)

І на рахунок 2 пункту дане провірка повинна виглядити приблизно так?
( Если УсСчетНДС = 0 Тогда (УсСчетНДС - новий реквизит)
глВыбранЛи(СчетНДС,"Счет НДС");
КонецЕслиwink.gif
Ardi
Цитата(SeraArej @ 16.03.10, 9:50) необходимо зарегистрироваться для просмотра ссылки
Я не сильон в програміванні 1С тому розраховую на вашу допомогу.

А в чём силён помочь?
SeraArej
Цитата(Ardi @ 16.03.10, 11:45) необходимо зарегистрироваться для просмотра ссылки
А в чём силён помочь?

Ну в чому зможу в тому допоможу, но на даному етапі по програмуванні в 1С покищо розраховую на сторонню допомогу, заодно сам підвчиваю.
Batchir
Новый документ вводится двумя способами:
1. Добавление нового
2. Ввод на основании
Процедуры обрабатывающие эти события находятся в модуле формы

1.
Процедура ВводНового(ПризнакКопирования)
...
КонецПроцедуры

2.
Процедура ВводНаОсновании(Док)
...
КонецПроцедуры
SeraArej
Цитата(Batchir @ 16.03.10, 13:18) необходимо зарегистрироваться для просмотра ссылки
Новый документ вводится двумя способами:
1. Добавление нового
2. Ввод на основании
Процедуры обрабатывающие эти события находятся в модуле формы

1.
Процедура ВводНового(ПризнакКопирования)
...
КонецПроцедуры

2.
Процедура ВводНаОсновании(Док)
...
КонецПроцедуры

Це зробив) Надіюсь правельно:

Процедура ВводНового(Копируем)
    Если Копируем = 1 Тогда
        глУстановитьНомерДокумента(Контекст);
        Возврат;
    КонецЕсли;
    
    Фирма = глВосстановитьЗначение(,"БазФирма");
    ИзмФирма();
    
    Контрагент = глВосстановитьЗначение(,"БазПоставщик");
    ИзмКонтрагент();
    ЧтоПриходуем = глВосстановитьЗначение(Контекст, "ЧтоПриходуем", Перечисление.ЧтоПриходуем.ТМЦ);
    МестоХранения = глВосстановитьЗначение(Контекст,"БазМестоХранения");
    Валюта = Гривня;
    ИзмВалюта();
    УсСчетНДС = СчетПоКоду("64.1.5");
    ВалютаПеревозки = Гривня;
    ИзмВалютаПеревозки();
    
    ЗаполнитьПоУмолчанию();
КонецПроцедуры


А ще на рахунок 2 пункта провірки на заповнення?
Batchir
Модуль документа.



Функция ПроверкаШапки()
глВсеВыбрано = 1;
глПроверкаДатыДок(Контекст,"Проведение");
глВыбранЛи(Фирма,"Фирма");
глВыбранЛи(Контрагент,"Контрагент");
глВыбранЛи(МестоХранения,"Место хранения");
глВыбранЛи(Валюта,"Валюта");
глВыбранЛи(ВидТорговли,"Вид торговли");
глВыбранЛи(СубконтоВалДох,"Субконто валовых доходов");
// 20100316 добавлена строка
глВыбранЛи(УсСчетНДС,"Счет НДС");
// ___________________________

...
КонецФункции


И желательно все свои доработки отмечать комментариями
Например,


// 20100316 добавлена строка
УсСчетНДС = СчетПоКоду("64.1.5");
// ___________________________
SeraArej
Цитата(Batchir @ 16.03.10, 14:37) необходимо зарегистрироваться для просмотра ссылки
Модуль документа.



Функция ПроверкаШапки()
глВсеВыбрано = 1;
глПроверкаДатыДок(Контекст,"Проведение");
глВыбранЛи(Фирма,"Фирма");
глВыбранЛи(Контрагент,"Контрагент");
глВыбранЛи(МестоХранения,"Место хранения");
глВыбранЛи(Валюта,"Валюта");
глВыбранЛи(ВидТорговли,"Вид торговли");
глВыбранЛи(СубконтоВалДох,"Субконто валовых доходов");
// 20100316 добавлена строка
глВыбранЛи(УсСчетНДС,"Счет НДС");
// ___________________________

...
КонецФункции


И желательно все свои доработки отмечать комментариями
Например,


// 20100316 добавлена строка
УсСчетНДС = СчетПоКоду("64.1.5");
// ___________________________


Огромное СПС. Зараз внесу дані зміни))
SeraArej
Дякую за допомогу, таякби все получилось))) Спс всім)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.