7.7 Редактирование документов

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем Nadya69, 9 ноя 2009.

  1. TopicStarter Overlay
    Nadya69
    Offline

    Nadya69

    Регистрация:
    7 май 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Помогите в документе счет на оплату редактировать "Всего", чтобы потом в обратном порядке рассчитывались НДС, сумма без НДС и цена. Я не программист, а бухгалтер. Уже надоело на калькуляторе высчитывать сумму без НДС, если известна полная цена. В справочнике номенклатуры тоже нельзя поставить цены, так как для всех покупателей они разные. Очень прошу помочь (1С Предприятие 7.7. бух. учет).
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Если вы не программист - вызовите специалиста. Задача простенькая - не дорого возьмут. Самим в базу лезть не рекомендую - можете только повредить.

    Каждый должен заниматься своим делом.
  3. TopicStarter Overlay
    Nadya69
    Offline

    Nadya69

    Регистрация:
    7 май 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Хоть я не программист, но сама часто уже редактировала документы в конфигураторе. Директор такой скряга, что ни за что не раскошелится на программиста. Я раньше в другой фирме делала это сама. Но я долго копалась и давно. Сейчас уже не помню. Может есть что-нибудь не очень сложное. Неужели все так мучаются как я?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    В ворме документа в т.части с на колонке "всего" правая кн. мышки - свойство
    1)снимаем галку "сделатьНедоступным"
    2) закладка дополнительно, поле формула Пересчет()

    В модуле документа ищем процедуру Пересчет и меняем:
    Код:
    Процедура Пересчет(ИмяРеквизита="")
    
    Если ИмяРеквизита = "" Тогда // вызов из формулы колонки табличной части
    ИмяРеквизита = Форма.ТекущаяКолонка();
    КонецЕсли;
    
    Если Товар.Выбран() = 1 Тогда
    Если (ИмяРеквизита = "Товар") Тогда
    Цена = глПолучитьЦену(Контекст,Товар,ТипЦен,ДатаДок,Валюта);
    //глСуммаДокумента(Контекст, Товар);
    Если Количество <> 0 Тогда
    Пересчет("Цена");
    КонецЕсли;
    ИначеЕсли (ИмяРеквизита = "Количество") Тогда
    Сумма = Цена*Количество;
    РассчитатьНалоги();
    ИначеЕсли (ИмяРеквизита = "Цена") Тогда
    Сумма = Цена*Количество;
    РассчитатьНалоги();
    ИначеЕсли (ИмяРеквизита = "Сумма") Тогда
    РассчитатьНалоги();
    Цена = ?(Количество = 0, Сумма, Сумма/Количество);
    ИначеЕсли (ИмяРеквизита = "НДС") или (ИмяРеквизита = "НП") Тогда
    Всего = глПоказательДокумента(Контекст, "СуммаСНалогами");
    ИначеЕсли (ИмяРеквизита = "Всего") Тогда
    //здесь вычисляем цену от обратного
    КонецЕсли;
    КонецЕсли;
    
    КонецПроцедуры // 
    
    
    
    
  5. TopicStarter Overlay
    Nadya69
    Offline

    Nadya69

    Регистрация:
    7 май 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Это все понятно, но как быстрее рассчитать цену от обратного. Я раньше столько много писала, даже с двумя промежуточными результатами. Очень буду благодарна.
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Вот так расчитать от обратного:
    Код:
    Процедура Рассчитать() 
    НдсСверху=1;
    Если ПустоеЗначение(ВариантРасчетаНалогов.СтавкаНДС)=0 Тогда
    Ставка=ВариантРасчетаНалогов.СтавкаНДС.Ставка;
    Если Ставка=0 Тогда
    Ставка=18;
    КонецЕсли;
    НдсСверху=ВариантРасчетаНалогов.СуммаВключаетНДС;
    Иначе
    Ставка=глСтавкаНалога(Контекст, "НДС").Ставка;
    КонецЕсли;		
    Если (Всего <>0)И(Количество<>0) Тогда 
    Если НДССверху=1 Тогда
    Сумма=Всего/(1+(Ставка/100));
    НДС=Всего-Сумма;
    Цена=Сумма/Количество;
    Иначе
    Сумма=Всего;
    НДС=Сумма*(1-1/(1+Ставка/100));
    Цена=Сумма/Количество;
    КонецЕсли;
    КонецЕсли;   
    
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/конецпроцедуры')">КонецПроцедуры	</span>
    
    
    
  7. TopicStarter Overlay
    Nadya69
    Offline

    Nadya69

    Регистрация:
    7 май 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Извините, не получается. Выдает <<?>>Процедура Рассчитать ()
    {Документ.Счет.Форма.Модуль(159)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
    <<?>>Процедура Рассчитать ()
    {Документ.Счет.Форма.Модуль(159)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
    <<?>>Процедура Рассчитать ()
    {Документ.Счет.Форма.Модуль(159)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Я привел пример отдельной процедуры расчета... Ее (вызов) нужно вставить в предыдущий пример
    Код:
    ИначеЕсли (ИмяРеквизита = "Всего") Тогда            
    Рассчитать();
    КонецЕсли;
    
    
  9. TopicStarter Overlay
    Nadya69
    Offline

    Nadya69

    Регистрация:
    7 май 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Я вставила туда, где вычисляем цену от обратного.
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Выложите текст модуля целиком (в текстовый файл и прикрепите)
  11. TopicStarter Overlay
    Nadya69
    Offline

    Nadya69

    Регистрация:
    7 май 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Вот.

    Вложения:

    • Счет.txt
      Размер файла:
      21,9 КБ
      Просмотров:
      38
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    вы вставили текст процедуры ВНУТРЬ процедуры.... Это не допустимо. Нужно было процедуру вставить отдельно и прописать ее вызов или тело самой процедуры ставить внутрь условия. Вот рабочий пример

    Вложения:

    • счет1.txt
      Размер файла:
      21,8 КБ
      Просмотров:
      32
  13. TopicStarter Overlay
    Nadya69
    Offline

    Nadya69

    Регистрация:
    7 май 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Будьте добры, посмотрите новый модуль. Все равно выдает ошибку:
    Сумма=Всего/(1+Ставка/100)<<?>>);
    {Документ.Счет.Форма.Модуль(128)}: Неопознанный оператор
    <<?>>КонецЕсли;
    {Документ.Счет.Форма.Модуль(136)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
    <<?>>КонецЕсли;
    {Документ.Счет.Форма.Модуль(136)}: Обнаружено логическое завершение исходного текста модуля

    Вложения:

    • Счет.txt
      Размер файла:
      22 КБ
      Просмотров:
      21
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Прошу прощения - уберите лишнюю скобку

    Код:
    Сумма=Всего/(1+Ставка/100);
    
    
  15. TopicStarter Overlay
    Nadya69
    Offline

    Nadya69

    Регистрация:
    7 май 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Сейчас ошибку не дает, но при вводе "всего" ничего не считает.
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    вы вставили вызов процедуры в колонку "всего"?
  17. TopicStarter Overlay
    Nadya69
    Offline

    Nadya69

    Регистрация:
    7 май 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Простите, забыла. Сейчас всё работает. Ура!!! Спасибо большое.
  18. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Попробуйте в том месте где убирали скобку на сделующей строчке добавить код:

    Код:
    Сообщить("Я работаю");
    
    
    при этом после ввода суммы всего должно выскакивать это сообщение
  19. TopicStarter Overlay
    Nadya69
    Offline

    Nadya69

    Регистрация:
    7 май 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Спасибо, что ещё можете со мной шутить.

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