Вопрос № 83834: Доброго Здоровья, Уважаемые Знатоки.Есть вопросик.Есть конфигурация УСН - 152 релиз.Случилась такая проблемка - по какой-то причине сменился порядковый номер в платежном поручении от 17.04.2007г. на 0171,7 - заметили только сегодня - даже не знаю как...Вопрос № 83838:
Уважаемые Эксперты, Помогите, пожалуйста, нужно на основании одного документа (НачислениеАмортизации) ввести другой (чтобы с документа основания брались суммы Начисленной амортизации) как правильно это сделать? Если можно напишите пример «ввода ...Вопрос № 83840: Здравствуйте уважаемые эксперты! Возник такой вопрос:
Есть две абсолютно разные конфигурации на разных ПК (ПК не в сети).
В одну базу вводится приход товара и соответственно в БД отображается расход...
Как сделать так, чтобы во вто...
Вопрос № 83.834
Доброго Здоровья, Уважаемые Знатоки.Есть вопросик.Есть конфигурация УСН - 152 релиз.Случилась такая проблемка - по какой-то причине сменился порядковый номер в платежном поручении от 17.04.2007г. на 0171,7 - заметили только сегодня - даже не знаю как такое могло произойти?Теперь при создании новых платежек, или при копировании старых(неважно каким способом),автоматом ставится номер 0171,8, 0171,9, 0171,10... и т.д.Может кто подскажет как возвратить нормальную порядковую нумерацию?Буду очень благодарен.
Отправлен: 23.04.2007, 13:47
Вопрос задал: Alex81 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Alex81!
Не повезло Вам. ну не повезло так не повезло. Я пишу так потому что не всегда удается восстановить нумерацию. скорее всего, эта ошибка будет тянуться аж до следующего года, и с нового года начнется нормальная нумерация.
Попробуйте так: сделать копию базы обязательно!
1.Перенумеровать документы, раздав всем, у кого в номере запятая, номер без запятой. Если ни одного номера в базе с запятой не осталось, а новый документ вводится с запятой, то попробуйте следующее:
2.В конфигураторе поменяйте периодичность номера платежного поручения на какую-нибудь другую. Сохраните данные. Конфигуратор ругнется на неуникальные номера. Не обращайте внимания. Поменяйте периодичность на ту, которая была раньше. Сохраните данные. Конфигуратор ругаться не должен. Если ругнется на неуникальные номера, то внимательно изучите список ругательств, и все обруганные документы перенумеруйте, а п.2 повторите еще раз.
Может, повезет. Если не повезет, то прийдется вести нумерацию на листочке бумаги до следующего года.
Причина данного глюка проста: бухгалтер случайно ввел в номер запятую.
Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Студент)
Ответ отправлен: 23.04.2007, 15:23 Оценка за ответ: 5 Комментарий оценки: Большое спасибо за ответ.Сделал как вы и рекомендовали в пункте 1 - вроде все получилось!Программа стала опять нормально присваивать номера платежкам!
Отвечает: BigHard
Здравствуйте, Alex81!
Можно было бы поизвращяться с программированием, искать запятую, убирать ее, но если документов за 4 для не так много, то зачем???
Тут поможет изменение номеров платежек на нормальное. Попробуйте изменить номера, начиная с последних, не поможет, придется изменять все. Также попробуйте вручную вбить нормальный номер, может поможет.
а если хотите поизвращяться, пишите в личку.
--------- Чем отличается чайник от программиста: У чайника в одном килобайте 1000 байт, а у программиста в одном километре 1024 метра
Ответ отправил: BigHard (статус: 10-ый класс)
Ответ отправлен: 23.04.2007, 15:47 Оценка за ответ: 5 Комментарий оценки: Большое спасибо за ответ.Пронумеровал эти платежки - вроде все получилось!Программа стала опять нормально присваивать им номера!
Вопрос № 83.838
Уважаемые Эксперты, Помогите, пожалуйста, нужно на основании одного документа (НачислениеАмортизации) ввести другой (чтобы с документа основания брались суммы Начисленной амортизации) как правильно это сделать? Если можно напишите пример «ввода на основании документа».
Отправлен: 23.04.2007, 14:07
Вопрос задала: Надежда (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Надежда!
Для ввода на основании у документа НачислениеАммортизации поставить птичку ЯвляетсяОснованиемДля Вашего документа.
При интерактивном вводе на основании а также при программном вводе на основании через ОткрытьФорму выполняются следующие действия:
1.Выполняется код инициализации формы, расположенный после последней процедуры
2.Выполняется ВводНаОсновании(ДокументОснование)
3.Выполняется ПриОткрытии()
Вам в процедуре ВВодНаОсновании нужно построить документ.
Пример: Случай, если из документа-основания нужно брать только дату:
Процедура ВводНаОсновании(ДокументОснование)
ДатаДок=ДокументОснование.ДатаДок;
КонецПроцедуры
Пример посложнее: Случай, если из документа-основания нужно брать только дату и склад и строить цепочку подчиненных документов (в документе в шапке должен быть реквизит ДокОснование типа документ):
Процедура ВводНаОсновании(ДокументОснование)
ДатаДок=ДокументОснование.ДатаДок;
ДокОснование=ДокументОснование.ТекущийДокумент();
Склад=ДокументОснование.СоСклада;
КонецПроцедуры
Теперь документ, введенный на основании, будет подчинен НачислениюАммортизации, так как один из реквизитов на него ссылается.
Пример посложнее: Случай, если из документа-основания нужно брать только дату и склад и строить цепочку подчиненных документов. Если в НачисленииАммортизации счет=22.2, то в вводимом документе ставим счет 35.7, а если другой, то не ставим:
Процедура ВводНаОсновании(ДокументОснование)
ГлВводНового(Контекст) вызываем какие хотим процедуры хоть с глобального модуля, хоть с локального
ДатаДок=ДокументОснование.ДатаДок;
ДокОснование=ДокументОснование.ТекущийДокумент();
Склад=ДокументОснование.СоСклада;
Если ДокументОснование.СчетСписания=СчетПоКоду("22.2") Тогда
СчетНач=СчетПоКоду("35.7")
Иначе
Предупреждение("Данный документ можно ввести только если у Начисления Аммортизации счет 22.2");
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецПроцедуры
В данном примере вводимый документ не создастся вообще, если у документа основания неподходящий параметр СчетСписания.
Пример посложнее: Случай, если могут быть разные документы основания:
Процедура ВводНаОсновании(ДокументОснование)
Если ДокОснование.Вид()="НачислениеАммортизации" Тогда
ГлВводНового(Контекст) вызываем какие хотим процедуры хоть с глобального модуля, хоть с локального
ДатаДок=ДокументОснование.ДатаДок;
ДокОснование=ДокументОснование.ТекущийДокумент();
Склад=ДокументОснование.СоСклада;
Если ДокументОснование.СчетСписания=СчетПоКоду("22.2") Тогда
СчетНач=СчетПоКоду("35.7")
Иначе
Предупреждение("Данный документ можно ввести только если у Начисления Аммортизации счет 22.2");
СтатусВозврата(0);
Возврат;
КонецЕсли;
ИначеЕсли ДокОснование.Вид()="Счет" Тогда
СчетНач=СчетПоКоду("852.4");
КонецЕсли;
КонецПроцедуры
Обычно документ НачислениеАммортизации полезной информации в реквизитах содержит мало. Вся его информация хранится в проводках, которая вычисляется при проведении. Вытянем информацию оттуда:
Процедура ВводНаОсновании(ДокументОснование)
Если ДокОснование.Вид()="НачислениеАммортизации" Тогда
ГлВводНового(Контекст)
ДатаДок=ДокументОснование.ДатаДок;
ДокОснование=ДокументОснование.ТекущийДокумент();
Склад=ДокументОснование.СоСклада;
Если ДокументОснование.Проведен()=0 Тогда
Предупреждение("Документ Начисление Аммортизации нужно провести");
СтатусВозврата(0);
Возврат;
КонецЕсли;
Опер=СоздатьОбъект("Операция");
Опер.НайтиОперацию(ДокументОснование.ТекущийДокумент())
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку()=1 Цикл
Если Опер.Дебет.Счет=ДокОснование.СчетСписания Тогда
НоваяСтрока();Вот пример ввода табличной части на основании
ТМЦ=Опер.Дебет.субконто(1);
Сумма=Опер.Сумма;
Колво=Опер.Количество;
КонецЕсли;
КонецЦикла;
Если ДокументОснование.СчетСписания=СчетПоКоду("22.2") Тогда
СчетНач=СчетПоКоду("35.7")
Иначе
Предупреждение("Данный документ можно ввести только если у Начисления Аммортизации счет 22.2");
СтатусВозврата(0);
Возврат;
КонецЕсли;
ИначеЕсли ДокОснование.Вид()="Счет" Тогда
СчетНач=СчетПоКоду("852.4");
КонецЕсли;
КонецПроцедуры
Могут быть примеры посложнее. Например, при вводе на основании документа Прайс на основании другого Прайс (такое тоже может быть) новый прайс спрашивает, на сколько процентов поднять цены. Дату берем новую, номенклатуру с основания. Это пример ввода табличной части
Процедура ВводНаОсновании(ДОсн)
ДатаДок=РабочаяДата();Эта строка совсем лишняя, рабочая дата новому документу присваивается всегда. Но ничто не мешает присвоить завтрашнюю или вчерашнюю дату.
ДокОснование=ДОсн.ТекущийДокумент();
Подразделение=ДОсн.Подразделение;
Проц=0;временная переменная
ВвестиЧисло("На сколько процентов поднять цены?",Проц,5,2);
ДОсн.ВыбратьСтроки();
Пока ДОсн.ПолучитьСтроку()=1 Цикл
НоваяСтрока();
ТМЦ=ДОсн.ТМЦ;
Цена=ДОсн.Цена*(1+Проц/100);
КонецЦикла;
Док=СоздатьОбъект("Документ");
Док.ВыбратьПодчиненныеДокументы(,,ДОсн);
Пока Док.ПолучитьДокумент()=1 Цикл
Если Док.Вид()="Прайс" Тогда
Предупреждение("Будьте внимательны, на основании этого прайса уже вводился прайс. Не сотворите дублей");
КонецЕсли;
КонецЦикла;
Док=СоздатьОбъект("Документ.Прайс");
Док.ВыбратьДокументы(ДатаДок,ДатаДок);
Пока Док.ПолучитьДокумент()=1 Цикл
Если Док.Вид()="Прайс" Тогда
Предупреждение("сегодня уже прайс вводился. новый ввести нельзя");
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
В приложении пример реально работающей базы. Там, кстати, табличная часть вводится на основании не всех строк, а только тех, которые относятся к выбранному складу.
Реальная работа требует еще более сложных алгоритмов. Все на Ваш вкус. Удачи!
Приложение:
Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Студент)
Ответ отправлен: 23.04.2007, 15:00 Оценка за ответ: 5 Комментарий оценки: Большое спасибо за подробный ответ, вы мне очень помогли!!!
Отвечает: BigHard
Здравствуйте, Надежда!
Цитирую документацию по 1с:
Вызов процедуры ВводНаОсновании производится в системе 1С:Предприятие неявно после выбора пункта меню «Действия» - «Ввести на основании». В этот момент система подставляет фактическое значение параметра <ДокументОснование>, содержащее документ, на котором находился курсор в момент выполнения данной команды.
Данная процедура может использоваться, например, для установки начальных значений (по умолчанию) реквизитов нового документа, вводимого на основании другого. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя вводить новые документы), ввода нового документа и открытие его формы не будет выполнено.
Приложение:
--------- Чем отличается чайник от программиста: У чайника в одном килобайте 1000 байт, а у программиста в одном километре 1024 метра
Ответ отправил: BigHard (статус: 10-ый класс)
Ответ отправлен: 23.04.2007, 15:47 Оценка за ответ: 5 Комментарий оценки: Большое спосибо!!
Отвечает: Борисов Николай Александрович
Здравствуйте, Надежда!
См.Приложение.
В свойствах документа на основании которого ввод кн.(ввод на основании...) ставиш тот документ будет получать реквизты.
Затем на исходный кидаеш кнопку и форулой:
глДействия(Контекст, СписокДействий)
Здравствуйте уважаемые эксперты! Возник такой вопрос:
Есть две абсолютно разные конфигурации на разных ПК (ПК не в сети).
В одну базу вводится приход товара и соответственно в БД отображается расход...
Как сделать так, чтобы во вторую БД (стандартная торговля и склад) перебрасывать информацию о приходе (чтобы не вводить по несколько раз приход в разные базы) ???
Отправлен: 23.04.2007, 14:23
Вопрос задала: Ritsa (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 6)
Отвечает: Vovchai
Здравствуйте, Ritsa!
1. существует конфигурация Конвертация данных, подойдет для реалзации такого обмена
2. писать обработку выгрузки/загрузки с синхронизацией справочников самому
Ответ отправил: Vovchai (статус: 2-ой класс)
Ответ отправлен: 23.04.2007, 14:27
Отвечает: BigHard
Здравствуйте, Ritsa!
Нужно обработку писать, если базы совсем разные, ну а если одинаковые - то УРБД вам поможет :)
--------- Чем отличается чайник от программиста: У чайника в одном килобайте 1000 байт, а у программиста в одном километре 1024 метра
Ответ отправил: BigHard (статус: 10-ый класс)
Ответ отправлен: 23.04.2007, 15:47
Отвечает: Allex
Здравствуйте, Ritsa!
Осмелюсь предложить обработку Перенос данных. Это самое мощное и удобное средство переноса данных между разными конфигурациями. Можно настроить очень изощренные правила. К тому же, обработка прекрасно документирована. Ежели всё-таки возникнут вопросы - обращайтесь, помогу.
Приложение:
Ответ отправил: Allex (статус: 8-ой класс)
Ответ отправлен: 23.04.2007, 16:11
Отвечает: Elric
Здравствуйте, Ritsa!
Рекомендую МОД (Менеджер обмена данными), разработка московской фирмы "ПиБи". Стоит в 10 раз дешевле УРБД, позволяет обмениваться данными базам с разными конфигурациями, вплоть до конвертации справочников в перечисления и наоборот. ОЧЕНЬ гибкая, и при этом довольно простая. Уже лет пять на рынке, протестирована многократно на самых разных задачах :)
--------- Мирный атом в КАЖДЫЙ дом!
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 24.04.2007, 14:49