Вопрос № 31310: Здравствуйте!!!
Подскажите пожалуйста принцип работы 1С-сервера, как именно он общается с 1С-предприятием и важна ли директория в которой находится база 1С-предприятия?
Заранее благодарен. Николай....Вопрос № 31365: Доброго здоровичка!
Попытаюсь сформулировать вопрос. В приложении процедура ПоказатьОстаткиПоСчету() заполняет табличку остатками по 41 счету. При этом если есть записанные но не проведенные накладные (приход, расход), то эти накладные (кол-во то...
Вопрос № 31.310
Здравствуйте!!!
Подскажите пожалуйста принцип работы 1С-сервера, как именно он общается с 1С-предприятием и важна ли директория в которой находится база 1С-предприятия?
Заранее благодарен. Николай.
Отвечает: Крюков Р.А.
Здравствуйте, Данилов Николай Юрьевич!
при работе с сервером 1С-Предприятие Используется база на SQL-сервере. Следовательно сначала нужно создать пустую базу на SQL-сервере. Затем в консоли Сервера 1С-Предприятия Добавить в список базу и прописать в ней параметры SQL-базы. Перенести существующую базу на SQL можно посредством выгрузки данных.
--------- Отвечаю только на вопросы в тему.
Ответ отправил: Крюков Р.А. (статус: 1-ый класс)
Отправлен: 12.12.2005, 15:27
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Данилов Николай Юрьевич!
Для базы dbf: понятия 1С-сервера не существует. каждое 1С предприятие работает самостоятельно. Важна ли директория? Она может быть как локальная, так и сетевая, но обязательно доступ должен быть шустрый и безглючный. В идеале , конечно же, настроить сервер терминалов, тогда для каждого пользователя база будет на локальном диске, что повышает скорость.
Для базы sql не знаю.
Доброго здоровичка!
Попытаюсь сформулировать вопрос. В приложении процедура ПоказатьОстаткиПоСчету() заполняет табличку остатками по 41 счету. При этом если есть записанные но не проведенные накладные (приход, расход), то эти накладные (кол-во товара) процедура не видит - это хорошо. Дальше, есть функция:
Функция ОстаткиПоСчету(Субконто, ДатаПроверки)
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
Товар=СоздатьОбъект("Справочник.Номенклатура");
БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура, Субконто,2);
БухИт.ВыполнитьЗапрос(ДатаПроверки, ДатаПроверки, "41.1",,1,"К");
//Сообщить(БухИт.СНД(3));
Если БухИт.СНД(3)>0 Тогда
Возврат(БухИт.СНД(3));
Иначе
Возврат 0;
КонецЕсли;
КонецФункции //ОстаткиПоСчету
И есть строка кода откуда эта функция вызывается:
Если чкОстаткиПоСчету=1 Тогда
Прих.Количество = Запрос.Количество - ОстаткиПоСчету(Прих.Товар, Прих.ДатаДок);
Иначе
Прих.Количество = Запрос.КоличествоСумма;
КонецЕсли;
Это все для автоматического формирования приходников, с учетом остатков на 41 счете если надо. Вот это -
Если БухИт.СНД(3)>0 Тогда
Возврат(БухИт.СНД(3)); - сделано потому что Бух.СНД(3), как ни странно возвращает значения из накладных которые были сформированы и записаны (НО НЕ ПРОВЕДЕНЫ!!!) этой же самой процедурой ("Сформировать", она в цикле формирует на начало каждого дня приходники по тем расходникам которые уже проведены). Мне нужно учитывать остатки тока по тем накладным которые уже проведены, да и стандартные отчеты не видят не проведенные приходы. Как такое может быть и как от этого избавиться?
Вобчем кто дочитал, и на том спасибо, если будут мысли буду премного благодарен. ;)
з.ы. Если понадобится код "Сформировать" могу выслать.., там вроде все правильно.
Приложение:
Отправлен: 12.12.2005, 23:14
Вопрос задал: FarGot (статус: 6-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Ovr1970
Здравствуйте, FarGot!
У тебя бухгалтерский документ, у которого выбрана опция "создавать операцию" "всегда". Соответственно операция создается при записи документа и ты видишь те проводки, которые входят в созданную операцию.
Надеюсь я объяснил, откуда ноги растут, а вот что делать я тебе посоветовать , к сожалению, не могу.
Ответ отправил: Ovr1970 (статус: 5-ый класс)
Отправлен: 13.12.2005, 12:10 Оценка за ответ: 5 Комментарий оценки: Это у какого документа опция "создавать операцию всегда"? Там я разобрался, считает все правильно, проводок не было, тока я об этом потом догадался ;)
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, FarGot!
Где баг, не понял, есть только два замечание. После ВыполнитьЗапрос
БухИт.СНД(3) возвращает бредовые цифры. Всегда нужно ВыбратьСубконто()
Если ПолучитьСубконто()=1 Тогда
БухИт.СНД() не бредовое а реальное
КонецЕсли
Второе замечание: у Вас в цикле используется ВыполнитьЗапрос, и процедура получается очень торомознутая.
Для ускорения нужно ИспользоватьСубконто(ВидыСубконто.Номенклатура) и ВыполнитьЗапрос перед циклом, а внутри цикла только получать результаты запроса Если ПолучитьСубконто(1,,Товар.ТекущийЭлемент())=1 Тогда СНД() реальное Иначе СНД() бредовое КонецЕсли
И вообще, чтобы быстро работало, все тяжелые рассчеты типа ВыполнитьЗапрос нужно делать перед циклом, а не внутри
Ответ отправил: Шахрайчук Владимир Анатольевич (статус: 6-ой класс)
Отправлен: 13.12.2005, 14:55 Оценка за ответ: 5 Комментарий оценки: 1)Фик его знает, вроде правильные цифры. Про ВыбратьСубконто() не знал. Переделаю. Там косяк был в неправильном понимании этих цифр ;) 2)Согласен. Спасибо большое.